最長迴文子串 V2(Manacher演算法)
迴文串是指aba、abba、cccbccc、aaaa這種左右對稱的字串。
輸入一個字串Str,輸出Str裡最長迴文子串的長度。
Input
輸入Str(Str的長度 <= 100000)
Output
輸出最長迴文子串的長度L。
Input示例
daabaac
Output示例
5
#include <iostream>
#include <vector>
#include <algorithm>
#include <string.h>
using namespace std;
int fun(string &str)
{
string temp;
int len = str.length();
temp += '@';
for (int i = 0; i < len; i++)
{
temp += '#';
temp += str[i];
}
temp += '#';
temp += '&';
int size = len*2 + 1;
int pos = 0;
int right = 0;
int result = 0;
int buf[size];
for (int i = 1; i < size; i++)
{
if (i < right)
{
buf[i] = min(buf[2*pos-i], right-i);
}
else
{
buf[i] = 1;
}
while (temp[i-buf[i]] == temp[i+buf[i]])
{
buf[i]++;
}
if (i+buf[i] > right)
{
pos = i;
right = i+buf[i];
}
result = max(result, buf[i]);
}
return result-1;
}
int main()
{
string str;
cin >> str;
cout << fun(str) << endl;
return 0;
}
相關文章
- LeetCode-5. 最長迴文子串(Manacher)LeetCode
- hdu5371 最長迴文子串變形(Manacher演算法)演算法
- hihocoder 1032 最長迴文子串 (Manacher演算法 詳解+模板)演算法
- HDU 3068 最長迴文(Manacher演算法解決最長迴文串問題)演算法
- 演算法-兩最長迴文子串演算法
- java 最長迴文子串Java
- 演算法之字串——最長迴文子串演算法字串
- LEECODE 5 求最長迴文子串
- 每天一道演算法題:最長迴文子串演算法
- [動態規劃] 六、最長迴文子串動態規劃
- LeetCode 5.最長迴文子串LeetCode
- Amazon面試題:尋找最長迴文子串面試題
- 今日面試題:最長迴文子串;及迴文分割分析面試題
- Leetcode[字串] 5. 最長迴文子串LeetCode字串
- 翻譯數字串;及最長迴文子串分析字串
- leedcode-最長迴文串
- 程式碼隨想錄演算法訓練營 | 647. 迴文子串,516.最長迴文子序列演算法
- 程式碼隨想錄day46 || 647 迴文子串, 516 最長迴文子序列
- 每日一道 LeetCode (48):最長迴文子串LeetCode
- [LeetCode] Longest Palindromic Substring 最長迴文子串LeetCode
- ural 1297 最長迴文子串 字尾陣列陣列
- leetcode 解題 5. 最長迴文子串 python@ 官解,暴力法,動態法,manacher 法LeetCodePython
- 最長子串
- LeetCode - 409 - 最長迴文串LeetCode
- 程式碼隨想錄演算法訓練營day46| 647. 迴文子串 516.最長迴文子序列演算法
- 通俗易懂的最長迴文串圖解、說明及Java程式碼(中心擴散法和Manacher演算法)圖解Java演算法
- lc1771 由子序列構造的最長迴文串的長度
- Leetcode5: Longest Palindromic Substring(最長迴文子串)LeetCode
- 程式碼隨想錄演算法訓練營第五十七/天 | 516. 最長迴文子序列,647. 迴文子串演算法
- Manacher-求最長迴文字串字串
- 最長迴文子串(百度筆試題和hdu 3068)筆試
- lCS(最長公共子串)
- L2-008 最長對稱子串【最長迴文字串】字串
- 找到最長迴文字串 - Manacher's Algorithm字串Go
- 演算法-無重複字元的最長子串演算法字元
- 線性dp:最長公共子串
- LeetCode516. 最長迴文子序列LeetCode
- [演算法筆記]動態規劃之最長公共子串和最長公共子序列演算法筆記動態規劃