查找Python中最长回文子串长度的程序

假设我们有一个字符串S。我们必须找到S中最长回文子字符串的长度。我们假设字符串S的长度为1000。因此,如果字符串为“ BABAC”,则最长回文子字符串为“ BAB” ”,长度为3。

为了解决这个问题,我们将遵循以下步骤-

  • 定义一个与字符串长度相同阶数的方阵,并用False填充

  • 将主要对角线元素设置为true,因此对于所有i从0到阶– 1的DP [i,i] = True

  • 开始:= 0

  • 对于范围2到长度S +1的l

    • 结束:= i + l

    • 如果l = 2,则

    • 除此以外

    • DP [i,结束-1] = True,max_len:= l,开始:= i

    • 如果S [i] = S [end-1],则

    • DP [i,结束-1] = True,max_len:= l,开始:= i

    • 如果S [i] = S [end-1]和DP [i + 1,end-2],则

    • 对于i,范围为0到S – l + 1的长度

    • 返回max_len

    让我们看下面的实现以更好地理解-

    示例

    class Solution(object):

       def solve(self, s):

          dp = [[False for i in range(len(s))] for i in range(len(s))]

             for i in range(len(s)):

                dp[i][i] = True

             max_length = 1

             start = 0

             for l in range(2,len(s)+1):

                for i in range(len(s)-l+1):

                   end = i+l

                   if l==2:

                      if s[i] == s[end-1]:

                         dp[i][end-1]=True

                         max_length = l

                         start = i

                   else:

                      if s[i] == s[end-1] and dp[i+1][end-2]:

                         dp[i][end-1]=True

                      max_length = l

                      start = i

    return max_length

    ob = Solution()print(ob.solve('BABAC'))

    输入项

    "ABBABBC"

    输出结果

    5

    以上是 查找Python中最长回文子串长度的程序 的全部内容, 来源链接: utcz.com/z/355685.html

    回到顶部