python最长回文字符
解题思想:
- 一,把左右两边相等的全部回文字符找出来,通过双循环来遍历比较
- 二,找到最长的那个回文字符,然后求其长度
一,简单版本:双循环来暴力比较左右两边字符是否相等,把全部相等的给拿出来,找出最长的字符串
str = input()
n = len(str)
list = []
for i in range(0,n-1):
    for j in range(1,n):
        if str[i:j] == str[j:i:-1]:
        #注意,下标区间取值,是左闭右开型,所以要想取值到j,需要str[i:j+1]
            list.append(len(str[i:j+1]))
print(max(list))
二,优化版本,降低比较此次数
str = input()
n = len(str)
list = []
for i in range(0,n-1):
    for j in range(1,n):
        if str[j] == str[i] and str[i+1:j] == str[j-1:i:-1]:
            list.append(len(str[i:j+1]))
print(max(list))
三,再降低一下比较次数:
str = input()
n = len(str)
list = []
for i in range(0, n - 1):
    for j in range(1, n):
        if i <= j:
            if str[j] == str[i] and str[i + 1:j] == str[j - 1:i:-1]:
                list.append(len(str[i:j + 1]))
print(max(list))
    全世界的程序员们联合起来吧!
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号