题目描述
一个合法的域名是形如“..*******”的字符串,由“.”分隔成为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 False
if '..' in domain:
return False
parts = domain.split('.')
if len(parts) < 2 or len(parts) > 4:
return False
for part in parts:
if not part.isalnum() and '_' not in part:
return False
return True
result = ""
for i in range(n):
domain = input().strip()
if is_valid_domain(domain):
result += "Y"
else:
result += "N"
print(result)
测试点 5
输入
10 www.onlinedown.net www.jiayuan.com qzone.qq.com www.tianya.cn www.bai_he.com www.zhenai&com renren.com www.pcauto%com.cn www.bitauto$com www.123_jiayuan.com
输出
YYYYYNYNNY
一般可能没有考虑_
该问题涉及编程任务,要求编写一个函数用于判断输入的字符串是否符合合法域名的格式。合法域名由2~4段由点号分隔的字母、数字或下划线组成,不包含其他字符。给定一个整数n,表示有n个字符串需要处理,输出每个字符串是否合法的结果(Y或N)。示例程序使用Python实现,检查了点号的数量、段的长度以及段的内容是否合法。
528

被折叠的 条评论
为什么被折叠?



