题解 | #密码截取#
密码截取
http://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1
while 1:
try:
a=input()
# 设置初始步长
bc=0
# 逆序比较
if a==a[::-1]:
print(len(a))
else:
# 不断增加步长,比较回文
#每次增加步长,循环查找有没有比这个步长更长的回文,如果有,继续找,直到找完所有的回文为止
for i in range(len(a)):
# 优先查看两个增加两个长度的回文是否存在
if i-bc>=1 and a[i-bc-1:i+1]==a[i-bc-1:i+1][::-1]:
bc+=2
# 如果增加两个长度的没找到,再查看两个增加一个长度的回文是否存在
elif i-bc>=0 and a[i-bc:i+1]==a[i-bc:i+1][::-1]:
bc+=1
print(bc)
except:
break
查看26道真题和解析