Longest Palindromic Substring
来源:互联网 发布:java 秒杀 并发 代码 编辑:程序博客网 时间:2024/06/17 14:37
http://blog.csdn.net/hopeztm/article/details/7932245
Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring.
class Solution {public: string longestPalindrome(string ss) { string s = preProcess(ss); int c=0, r=0; int* p = new int[s.length()]; p[0] = 0; p[s.length()-1] = 0; for(int i=1;i<s.length()-1;++i){ int mirror = c - (i-c); p[i] = (r>i)?min(r-i, p[mirror]):0; //如果r没覆盖到i,赋值为0 while(s[i+p[i]+1] == s[i-p[i]-1]){ p[i]++; } if(i+p[i]>r){ r = i+p[i]; c = i; } } int maxLen = 0; int center = 0; for(int i=1;i<s.length()-1;++i){ if(p[i] > maxLen){ maxLen = p[i]; center = i; } } delete[] p; return ss.substr((center-1-maxLen)/2, maxLen); //去掉第一个^,然后去掉maxLen到大构造string的位置,然后除于2得到原始string的位置 } string preProcess(string s){ if(s.length() == 0){ return "^$"; } string res = "^"; for(int i=0;i<s.length();++i){ res += "#" + s.substr(i, 1); //注意这里用substr得到新的string,作用域问题,用[]是不行的! } res += "#$"; return res; }};
0 0
- LeetCode: Longest Palindromic Substring
- LeetCode Longest Palindromic Substring
- LeetCode: Longest Palindromic Substring
- [Leetcode] Longest Palindromic Substring
- Longest Palindromic substring
- [LeetCode] Longest Palindromic Substring
- LeetCode5:Longest Palindromic Substring
- Leetcode : Longest Palindromic Substring
- Longest Palindromic Substring
- Longest Palindromic Substring
- [LeetCode]Longest Palindromic Substring
- leetcode Longest Palindromic Substring
- Longest Palindromic Substring
- LeetCode-Longest Palindromic Substring
- Longest Palindromic Substring
- Longest Palindromic Substring
- [LeetCode] Longest Palindromic Substring
- Longest Palindromic Substring leetcode
- start_kernel()分析(一)
- Java类的初始化过程
- 社区问答专家招奖征资源分享有内涵访顾伟
- 决定踏上程序员之路!
- 时序分析/约束(一):相关概念
- Longest Palindromic Substring
- Linux--linux下常用内核参数
- Caused by: org.hibernate.HibernateException: Connection cannot be null when 'hibernate.dialect' not
- JAVA学习之StringBuffer 与Sring类的区别(实例展示)
- mongodb,windows版安装
- 理清udp,tcp 缓存区的
- 数据库安装类故障
- Android开发之Uri、UriMatcher、ContentUris学习
- 串口打印调试信息的延时问题