冰冰的电子邮箱
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给定一个字符串,验证是否是电子邮箱。

fresh_boy 为了简化问题,发明了一个新的电子邮箱命名规范。(注意此处的电子邮箱格式与常规的电子邮箱格式要求的区别)

fresh 电子邮件地址格式如下:

local-part@domain

其中:

- `local-part` 本地部分,是电子邮件地址的用户名称。
- `domain` 域名部分,是电子邮件地址所属的域名。
- 中间用一个 `@` 连接。

local-part(本地部分)

1. 字符范围:
- 可以包含字母(a-z, A-Z)、数字(0-9)。
- 可以包含点 .,但不能出现在开头或结尾。

2. 长度限制:
- 最长 64 个字符,最短 1 个字符。

domain(域名部分)

1. 字符范围:
- 可以包含字母(a-z, A-Z)、数字(0-9)。
- 可以包含点 .,但不能出现在开头或结尾。
- 可以包含分隔符 -,但不能出现在开头或结尾。

2. 长度限制:
- 最长 255 个字符,最短 1 个字符。

输入描述:

多组测试数据,第一行一个正整数 t(1\leq t\leq 10^2) 表示数据组数。

接下来 t 行,每行一个字符串 s(1\leq |s|\leq 350),保证输入字符为 ASCII 码值在 [32,126] 之间的可显示字符,且不含空格。

输出描述:

t 行,每行一个字符串 `Yes` 表示电子邮箱格式正确,`No` 表示电子邮箱格式不正确。
示例1

输入

复制
8
example@example.com
user.nametagsorting@example.com
user-name@sub.domain.com
plainaddress
@example.com
user@.com
user@com
user@-example.com

输出

复制
Yes
Yes
No
No
No
No
Yes
No