欢迎使用CSDN-markdown编辑器

来源:互联网 发布:大数据工程师面试题 编辑:程序博客网 时间:2024/06/17 13:35

Python 学习记录-20170126 最长回文子串

介绍:hihocode中测试题目,计算最长回文子串长度,题目来源:http://hihocoder.com/problemset/problem/1032?sid=940269

思路1:相遇情形,比如abaaa字符串,倒序为aaaba,则判断两个字符串一个从左至右,一个从右至左行走时交叉部分的连续相同的最大个数就是回文子串部分
abaaa abaaa abaaa
aaaba 回文1个 aaaba 回文2位 aaaba

cnt=int(input())for cc in range(0,cnt):    str=input("")    str1=str[::-1]    max_len =0    def samelen(str,str1):        str2=''        for i in range(len(str1)):            if str[i]==str1[i]:                str2+='1'            else:                str2+='0'        n=len(str2)        while str2.find('1'*n)==-1:            n=n-1            if n==0:                return  0        return n    for i in range(1,2*len(str)):        str3='';        str4='';        if i<=len(str):            str3=str[0:i]            str4=str1[len(str)-i:len(str)]        elif i>len(str):            j=i-len(str)            str3 = str[len(str)-j:len(str)]            str4 = str1[0:j]        lens=samelen(str3,str4)        max_len=max(max_len,lens)    print(max_len)
0 0
原创粉丝点击