美文网首页【python程序员面试宝典|程序员算法宝典】
【python】求字符串里的最长回文子串?

【python】求字符串里的最长回文子串?

作者: 阿牛02 | 来源:发表于2019-07-25 11:42 被阅读0次

题目:回文字符串是指一个字符串从左到右与从右到左遍历得到的序列是相同的。

分析:采用字符旋转的方法。

code:

def reverse(listStrs):

    begin = 0

    end = len(listStrs) - 1

    while begin < end:

        temp = listStrs[begin]

        listStrs[begin] = listStrs[end]

        listStrs[end] = temp

        begin += 1

        end -= 1

    return ''.join(listStrs)

if __name__ == "__main__":

    strs = 'abcba'

    listStrs = list(strs)

    strs1 = reverse(listStrs)

    if strs == strs1:

        print(strs + "为回文字串")

    else:

        print(strs + "不为回文字串")

code:

def longestPalindrome(s):

    # 如果字符串为空或者长度为1,则直接返原字符串

    if len(s) == 1 or s is None:

        return s

    # 记录最长回文子串得长度

    maxlen = 0

    # 记录最长回文子串得内容

    result = ''

    # 从头开始遍历字符串s

    for i in range(len(s)):

        for j in range(maxlen, len(s) - i ):

            #从当前记录的最大回文子串的长度往后开始遍历查看,因为如果长度小于maxlen的话,

            # 即使是回文子串,也不是最长的,不可能作为结果输出

            for j in range(maxlen,len(s) - i):

                # 字符串切片操作

                str_ = s[i: i + j + 1]

                _rts = str_[::-1]

                # 判断是否是回文子串且最长

                if str_ == _rts and len(str_) > maxlen:

                    maxlen = len(str_)

                    result = str_

    return result

if __name__ == "__main__":

    s = "babad"

    print(longestPalindrome(s))

相关文章

  • 最长回文子串

    最长回文子串——Manacher 算法 1. 问题定义 最长回文字符串问题:给定一个字符串,求它的最长回文子串长度...

  • Manacher's Algorithm算法分析Java

    Manacher's Algorithm俗称马拉车算法,对于求字符串中最长回文子串效率极高。 在求最长回文子串的时...

  • 最长回文子串

    问题定义 最长回文子串问题:给定一个字符串,求它的最长回文子串长度。 解法1:暴力解法 找到字符串的所有子串,判断...

  • LeetCode 5. 最长回文子串(Longest Palin

    5. 最长回文子串 切题 一、Clarification 求最长回文子串,这里有几个特殊情况需要考虑1、空字符串,...

  • 字符串---Manacher

    求最长回文子串 求一个串中的回文子串,首先将字符串处理成奇数个。如"abbc"处理成Ma = "$ a # b #...

  • 最长回文子串问题—Manacher算法

    最长回文串问题是一个经典的算法题。 0. 问题定义 最长回文子串问题:给定一个字符串,求它的最长回文子串长度。如果...

  • 字符串

    最长回文子串 1. 题目 已知一个只包含大小写的字符串,求用该字符串可以生成的最长回文子串的长度。 2. 思路 首...

  • 字符串最长回文子串

    字符串最长回文子串 题目描述: 给定一个字符串,求它的最长回文子串的长度。 分析和解法: 最容易想到的办法是枚举所...

  • 字符串算法

    最长公共前缀 最长回文串 最长回文子序列 最长公共子串 反转单词顺序列 反转字符串 字符串转数字 IP-int互转

  • Python最长回文子串

    Python最长回文子串 变体 返回str中最长回文子串的长度 给定一个字符串str,想通过添加字符的方式使得st...

网友评论

    本文标题:【python】求字符串里的最长回文子串?

    本文链接:https://www.haomeiwen.com/subject/ierfrctx.html