Longest Palindromic Substring
来源:互联网 发布:linux结束进程命令 编辑:程序博客网 时间:2024/05/29 19:10
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.
#include<iostream>#include<string.h>using namespace std;string longestPalindrome(string s) { int len = s.size(); int newlen = len * 2 + 1; char str[newlen]; int p[newlen]; int i, j, k, r, id; int maxr = 0; str[0] = '#'; for(i = 1, j = 0 ;s[j] != '\0'; i++, j++) { str[i] = s[j]; str[++i] = '#'; } str[i] = '\0'; p[0] = 1; for(i = 1, r = 1, id = 0; i < newlen; i++) { if(r > i) p[i] = (p[id * 2 - i] < (r - i))?p[id * 2 - i]:(r - i); else p[i] = 1; while(str[i + p[i]] != '\0' && str[i + p[i]] == str[i - p[i]]) p[i]++; if(p[i] >= maxr) { maxr = p[i]; id = i; r = i + p[i] - 1; } } string str1 = s.substr((id - maxr + 1) / 2, maxr - 1); return str1;}int main() { string str1 = longestPalindrome("c"); cout << str1 << endl;}
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
- eclipse中svn的各种图标详解
- ADC 驱动实例开发
- 基于lucene的案例开发:JsonUtil & XmlUtil
- Android引用appcompat出错问题解决
- 禁用php函数的设置
- Longest Palindromic Substring
- Eclipse中修改SVN URL地址
- jquery 回到浏览器顶部效果
- Q7:关于xcode证书申请以及真机调试简单版本
- Android SlidingMenu 简单配置和使用
- Dev-C++制作动态库的简单使用
- sass环境搭建以及webstorm中的scss配置
- android中sharedPreferences的用法
- htaccess无效的可能原因有哪些?