java 最長迴文子串
給定一個字串 s,找到 s 中最長的迴文子串。你可以假設 s 的最大長度為 1000。
示例 1:
輸入: "babad"
輸出: "bab"
注意: "aba" 也是一個有效答案。
示例 2:
輸入: "cbbd"
輸出: "bb"
解答
public class LongPlalindrome {
public String findPla(String s, int left, int right) {
while (left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)) {
//如果left>0且right<字串s的長度並且字串的left和right位置的字元一樣,
//left左移,right右移
left--;
right++;
}
//跳出迴圈時,left和right都不符合條件了,substring()方法是左閉右開區間[left,right)
//所以left+1,而right不用變
return s.substring(left+1, right);
}
public String longestPalindrome(String s) {
int maxLen = 0; //記錄最大長度
String oldStr = null; //記錄最長子迴文字串
for(int i = 0;i<s.length();i++) {
String str1 = findPla(s, i, i); //迴文字元中間一個字元
String str2 = findPla(s, i, i+1); //迴文字元中間兩個字元相同,如abba
String newStr = str1.length()>str2.length()?str1:str2; //得到較長的子串
if(maxLen<newStr.length()) { //如果新的迴文子串長度大於原來的長度,重新整理最長迴文字串
maxLen = newStr.length();
oldStr = newStr;
}
}
return oldStr;
}
}
相關文章
- 演算法-兩最長迴文子串演算法
- LEECODE 5 求最長迴文子串
- [動態規劃] 六、最長迴文子串動態規劃
- LeetCode 5.最長迴文子串LeetCode
- 演算法之字串——最長迴文子串演算法字串
- Amazon面試題:尋找最長迴文子串面試題
- 今日面試題:最長迴文子串;及迴文分割分析面試題
- Leetcode[字串] 5. 最長迴文子串LeetCode字串
- LeetCode-5. 最長迴文子串(Manacher)LeetCode
- 翻譯數字串;及最長迴文子串分析字串
- leedcode-最長迴文串
- 最長迴文子串 V2(Manacher演算法)演算法
- 程式碼隨想錄day46 || 647 迴文子串, 516 最長迴文子序列
- 每日一道 LeetCode (48):最長迴文子串LeetCode
- [LeetCode] Longest Palindromic Substring 最長迴文子串LeetCode
- ural 1297 最長迴文子串 字尾陣列陣列
- 最長子串
- 每天一道演算法題:最長迴文子串演算法
- LeetCode - 409 - 最長迴文串LeetCode
- lc1771 由子序列構造的最長迴文串的長度
- Leetcode5: Longest Palindromic Substring(最長迴文子串)LeetCode
- hdu5371 最長迴文子串變形(Manacher演算法)演算法
- HDU 3068 最長迴文(Manacher演算法解決最長迴文串問題)演算法
- 最長迴文子串(百度筆試題和hdu 3068)筆試
- hihocoder 1032 最長迴文子串 (Manacher演算法 詳解+模板)演算法
- 程式碼隨想錄演算法訓練營 | 647. 迴文子串,516.最長迴文子序列演算法
- lCS(最長公共子串)
- java無重複字元的最長子串Java字元
- L2-008 最長對稱子串【最長迴文字串】字串
- 程式碼隨想錄演算法訓練營day46| 647. 迴文子串 516.最長迴文子序列演算法
- 程式碼隨想錄演算法訓練營第五十七/天 | 516. 最長迴文子序列,647. 迴文子串演算法
- 線性dp:最長公共子串
- LeetCode516. 最長迴文子序列LeetCode
- 兩個字串的最長公共子串字串
- 無重複字元的最長子串字元
- poj3080-kmp+列舉子串 求最長公共子串KMP
- 【leetcode】【java】【3、無重複字元的最長子串】LeetCodeJava字元
- (迴文串)leetcode各種迴文串問題LeetCode