题解 | #密码截取#

密码截取

http://www.nowcoder.com/questionTerminal/3cd4621963e8454594f00199f4536bb1

对称有奇数对称和偶数对称的,分开来弄
string_a=input()
list_three=[]
list_fore=[]
max_len=0
for i in range(len(string_a)-2):
    if string_a[i:i+3]==string_a[i:i+3][::-1]:
        list_three.append(i+1)  #取奇数对称的中心坐标
for i in range(len(string_a)-3):
    if string_a[i:i+4]==string_a[i:i+4][::-1]:
        list_fore.append(i+1)   #取偶数对称的中心靠左的坐标
# print(list_three)
# print(list_fore)
count_three=0
for i in list_three:
    for j in range(1,len(string_a)//2+1):  #最长也就是一半
        # print(j)
        if i-j>=0 and string_a[i-j:i+j+1]==string_a[i-j:i+j+1][::-1]:
            count_three = max(count_three, j)
            continue
        else:
            break
# print("count_three:",count_three)
count_fore=0
for i in list_fore:
    for j in range(1,len(string_a)//2):   #最长也就是一半
        if i-j>=0 and string_a[i-j:i+j+2]==string_a[i-j:i+j+2][::-1]:
            count_fore = max(count_fore, j)
            continue
        else:
            break
# print("count_fore:",count_fore)
max_len=max(count_three*2+1,count_fore*2+2)
print(max_len)




全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务