题目描述

一个合法的域名是形如“..*******”的字符串,由“.”分隔成为2~4段,其中每一段由英文字母、数字或者下划线组成,不允许包含其它字符,下面都是一些合法的域名:

www.baidu.com,www.163.com,www.sina.com.cn,noi.org,www.people.com.cn,v.hao123.baidu.com

下面是非法的域名:

www, www.v.hao123.baidu.com, www.baidu. , www.baidu#hao.com,yeyou.chuanqu.com-new-g408

请编程判断给定的字符串是否是形式上合法的域名。

题目中先给出一个整型数n(1 ≤ n ≤ 50),表示后面有n行字符串需要判断。随后的n行中,每行一个字符串,需要进行合法性判断。对于合法的字符串,应输出“Y”,否则输出“N”,结果中间不用空格。

提示

输入输出格式

输入格式

第一行是正整数数n。从第2行到第n+1行,每行一个字符串,需要判断其合法性

输出格式

由“Y”和“N”组成的一行数据,分别表示第n个数据是合法还是非法

输入输出样例

输入

5
v.hao123.baidu.com
hao123.com
www.pbccrc.org.cn
www.baidu.com.
pro().sina.com

输出

YYYNN

n = int(input())def is_valid_domain(domain):if domain[-1] == '.':return Falseif '..' in domain:return Falseparts = domain.split('.')if len(parts)  4:return Falsefor part in parts:if not part.isalnum() and '_' not in part:return Falsereturn Trueresult = ""for i in range(n):domain = input().strip()if is_valid_domain(domain):result += "Y"else:result += "N"print(result)

测试点 5

输入

10www.onlinedown.netwww.jiayuan.comqzone.qq.comwww.tianya.cnwww.bai_he.comwww.zhenai&comrenren.comwww.pcauto%com.cnwww.bitauto$comwww.123_jiayuan.com

输出

YYYYYNYNNY

一般可能没有考虑_