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))

  

posted @ 2022-09-09 16:27  年轻人——001  阅读(124)  评论(0编辑  收藏  举报