Ural 1297 Palindrome 【最长回文子串】
2015-01-23 23:39
453 查看
最长回文子串 相关资料:
在看后缀数组的时候碰到的这道题目
不过没用后缀数组写出来= = 用了一个很暴力的做法卡进了1 s
Source Code:
531 ms 是可以过= = 不过大家用后缀数组都是15MS 过的,有点不好意思啊
1、暴力法
2、动态规划
3、中心扩展
4、Manacher法 http://blog.csdn.net/ywhorizen/article/details/6629268
/article/1802443.html在看后缀数组的时候碰到的这道题目
不过没用后缀数组写出来= = 用了一个很暴力的做法卡进了1 s
Source Code:
//#pragma comment(linker, "/STACK:16777216") //for c++ Compiler #include <stdio.h> #include <iostream> #include <string> #include <algorithm> using namespace std; string a, res, tmp1, tmp2; int ans; int main(){ int i, j, k, t, n, m; while(cin >> a){ ans = 1; int len = a.size(); bool flag = false; for(i = 0; i < len; ++i){ if(len - i < ans) break; for(j = len - i; j >= 1; --j){ tmp1 = a.substr(i, j); tmp2 = tmp1; reverse(tmp1.begin(), tmp1.end());a if(!flag){ if(tmp1.compare(tmp2) == 0 && j >= ans){ flag = true; res = tmp1; ans = j; break; } } else{ if(tmp1.compare(tmp2) == 0 && j > ans){ flag = true; res = tmp1; ans = j; break; } } } } cout << res << endl; } return 0; }
531 ms 是可以过= = 不过大家用后缀数组都是15MS 过的,有点不好意思啊
相关文章推荐
- 【Ural 1297】Palindrome manacher 最长回文子串
- URAL 1297 Palindrome 最长回文子串
- URAL 1297. Palindrome(后缀数组 求最长回文子串)
- 【后缀数组】【最长回文子串】Palindrome Ural_1297
- URAL 1297. Palindrome(输出最长回文子串--后缀数组)
- Ural1297(Palindrome)求最长回文子串(后缀数组)
- Ural 1297 Palindrome(后缀数组+最长回文子串)
- URAL - 1297 Palindrome(后缀数组求最长回文子串)
- URAL 1297 Palindrome(SA 求最长回文子串)
- 【URAL】1297 Palindrome 【后缀数组+RMQ——求最长回文子串】
- URAL 1297 Palindrome(最长回文子串 )
- URAL 1297 Palindrome (最长回文子串)
- ural 1297 Palindrome求最长连续回文子串(后缀数组求法)
- ural 1297 Palindrome(最长回文子串)
- URAL-1297 Palindrome (最长回文子串)
- URAL 1297 Palindrome(最长回文子串:后缀数组)
- URAL 1297 Palindrome(后缀数组求最长回文子串)
- URAL 1297 Palindrome【后缀数组】求最长回文子串
- 【URAL 1297】Palindrome 最长回文子串
- 【后缀数组|最长回文子串】URAL-1297 Palindrome