博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
查找字符串最长回文
阅读量:6168 次
发布时间:2019-06-21

本文共 1019 字,大约阅读时间需要 3 分钟。

查找字符串最长回文

Longest Palindromic Substring

  • Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.

  • Example:

Input: "babad"Output: "bab"
  • Note: "aba" is also a valid answer.

  • Example:

Input: "cbbd"Output: "bb"

思路

  1. 回文有奇回文和偶回文,abcba是奇回文,abccba是偶回文

  2. 回文都是中心对称,找到对称点后,同时向前后寻找回文的最长串即可

  3. 奇回文和偶回文可以归为同一种情况,即abcbac为对称点,abccbacc为对称点,但为了代码可读性,可以分开讨论

代码

class Solution(object):    def longestPalindrome(self, s):        """        :type s: str        :rtype: str        """        self.maxlen = 0        self.retstr = ''        if len(s) < 2:            return s        for i in range(len(s)):            self.__find_palindrome(s, i, i) #奇回文            self.__find_palindrome(s, i, i+1) #偶回文        return self.retstr    def __find_palindrome(self, s, j, k):        while j >= 0 and k < len(s) and s[j] == s[k]:            j -= 1            k += 1        if self.maxlen < k - j + 1:            self.maxlen = k - j + 1            self.retstr = s[j+1:k]

本题以及其它leetcode题目代码github地址:

转载地址:http://sunba.baihongyu.com/

你可能感兴趣的文章
how to install wireless driver for Dell 630 in Ubuntu
查看>>
Kafka 配置参数汇总及相关说明
查看>>
弄清 CSS3 的 transition 和 animation
查看>>
服务器指定网卡进行备份数据避免影响业务口
查看>>
在Sublime Text 2下面开发Sass
查看>>
四则运算个人项目3
查看>>
eclipse 构建maven web工程
查看>>
237. Delete Node in a Linked List
查看>>
[转] webpack之plugin内部运行机制
查看>>
宽字节与多字节之间的转换
查看>>
SEO的重要性
查看>>
ASP.NET 运行时详解 揭开请求过程神秘面纱
查看>>
Oracle 索引的失效检查
查看>>
C语言第五次作业--数据类型
查看>>
系统架构师-基础到企业应用架构-业务逻辑层
查看>>
高手详解SQL性能优化十条建议
查看>>
修改 IntelliJ IDEA 默认配置路径
查看>>
《现在的泪,都是当年脑子进的水》读书笔记
查看>>
IOSday04 UIButton使用
查看>>
铁大好青年内部分组
查看>>