https://leetcode.com/problems/longest-palindromic-substring/
来源:互联网 发布:go语言和java性能对比 编辑:程序博客网 时间:2024/06/05 06:35
https://leetcode.com/problems/longest-palindromic-substring/
这道题我分了两类 单字符中心和双字符中心
单字符的 遍历每一个字符 找以它为中心左右两个是否相等
把左边的起点的index和总长度记住
双字符 寻找两个连续的字符作为中心 方法相同
其中单中心的 length=min(i,len(s)-i-1) 就是看中心离哪边近 最后这个半径是不能超过length的
class Solution: # @param {string} s # @return {string} def longestPalindrome(self, s): max=1#最长串长度 needle=0#最长串开始位置(index) for i in range(1,len(s)-1):#单中心 length=min(i,len(s)-i-1)#防止溢出边界 for j in range(i-length,i)[::-1]: if j==i-length and s[j]==s[2*i-j]: if (i-j)*2+1>max: max= (i-j)*2+1 needle=j if s[j]!=s[2*i-j] : if (i-j)*2-1>max: max= (i-j)*2-1 needle=j+1 break#以i为中心的已经结束了 break这个for j i应该自加了 for i in range(len(s)-1):#双中心 if s[i]==s[i+1]: length=min(i,len(s)-i-2) if length==0: if 2>max: max=2 needle=i else: for j in range(i-length,i)[::-1]: if j==i-length and s[j]==s[2*i+1-j]: if length*2+2>max: max= length*2+2 needle=j if s[j]!=s[2*i+1-j] : if (i-j)*2>max: max=(i-j)*2 needle=j+1 break return s[needle:needle+max]
0 0
- https://leetcode.com/problems/longest-palindromic-substring/
- https://leetcode.com/problems/longest-common-prefix/
- https://leetcode.com/problems/longest-valid-parentheses/
- LeetCode: Longest Palindromic Substring
- LeetCode Longest Palindromic Substring
- LeetCode: Longest Palindromic Substring
- [Leetcode] Longest Palindromic Substring
- [LeetCode] Longest Palindromic Substring
- Leetcode : Longest Palindromic Substring
- [LeetCode]Longest Palindromic Substring
- leetcode Longest Palindromic Substring
- LeetCode-Longest Palindromic Substring
- [LeetCode] Longest Palindromic Substring
- Longest Palindromic Substring leetcode
- LeetCode Longest Palindromic Substring
- LeetCode - Longest Palindromic Substring
- LeetCode -- Longest Palindromic Substring
- LeetCode | Longest Palindromic Substring
- printf函数格式化字符串讲解
- CSS3属性笔记(三)
- 实验---接口
- O(logn)
- Android 常用的adb命令
- https://leetcode.com/problems/longest-palindromic-substring/
- Bitmap有效的压缩方式
- construct2游戏的加载过程
- 并查集小结
- Facebook北京大学2015年宣讲会小记【Facebook Technical Talk】
- 杭电ACM1001Sum Problem(1~n的和)
- 1!+2!+3!+...+10!
- 消息队列实现即时通讯
- C++中关于构造函数调用次序的一道经典例题及对虚函数构造顺序的理解