问题
如果写了某个大写字母,下一个就必须写同个字母的小写,或者写字母表中下一个字母的大写;
如果写了某个小写字母,下一个就必须写同个字母的大写,或者写字母表中前一个字母的小写;
当然也可以什么都不写,就结束这个字母串。
代码1
def cc(s):
for j in range(len(s)-1):
a,b=ord(s[j]),ord(s[j+1])
if 'A'<=s[j]<='Z' :
if a+32 ==b or a+1 ==b:
continue
else:
return False
else:
if a-32 ==b or a-1 ==b:
continue
else:
return False
else:
return True
for i in range(int(input())):
s=input()
if cc(s):
print("Y")
else:
print("N")
代码2
for i in range(int(input())):
s=input()
for j in range(len(s)-1):
a,b=ord(s[j]),ord(s[j+1])
if 'A'<=s[j]<='Z' :
if a+32 ==b or a+1 ==b:
continue
else:
print('N')
break
else:
if a-32 ==b or a-1 ==b:
continue
else:
print('N')
break
else:
print('Y')
代码1使用函数,代码2不适用函数,同样的功能,代码1更快(为什么?)