LeetCode每日一題:longest palindromic substring
問題描述
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.
問題分析
我們可以採用遞迴的方式,找每個字元為中心的最長迴文子串,用一個全域性變數(寫程式碼應該儘量避免全域性的變數)來記錄最長迴文子串的起始點和長度,遞迴時要分子串字元數是奇數還是偶數分類討論。
程式碼實現
public String longestPalindrome(String s) {
if (s.length() < 2) return s;
for (int i = 0; i < s.length() - 1; i++) {
findLongestPalindrome(s, i, i);
findLongestPalindrome(s, i, i + 1);
}
return s.substring(startInLongestPalindrome, startInLongestPalindrome + maxLenInLongestPalindrome);
}
private void findLongestPalindrome(String s, int i, int j) {
while (i >= 0 && j < s.length() && s.charAt(i) == s.charAt(j)) {
i--;
j++;
}
if (maxLenInLongestPalindrome < j - i - 1) {
startInLongestPalindrome = i + 1;
maxLenInLongestPalindrome = j - i - 1;
}
}
private int startInLongestPalindrome = 0, maxLenInLongestPalindrome = 0;
相關文章
- Leetcode Longest Palindromic SubstringLeetCode
- LeetCode 5 (Longest Palindromic Substring)LeetCode
- Leetcode-Longest Palindromic SubstringLeetCode
- Longest Palindromic Substring leetcode javaLeetCodeJava
- LeetCode 5. Longest Palindromic SubstringLeetCode
- LeetCode OJ : 5 Longest Palindromic SubstringLeetCode
- [LeetCode] Longest Palindromic Substring 最長迴文子串LeetCode
- Leetcode5: Longest Palindromic Substring(最長迴文子串)LeetCode
- [LeetCode] 5. Longest Palindromic SLeetCode
- Leetcode Longest Substring Without Repeating CharactersLeetCode
- [LeetCode] 3. Longest Substring Without Repeating Characters 題解LeetCode
- Leetcode 3 Longest Substring Without Repeating CharactersLeetCode
- Leetcode-Longest Substring Without Repeating CharactersLeetCode
- Longest Substring Without Repeating Characters leetcode javaLeetCodeJava
- Leetcode 3. Longest Substring Without Repeating CharactersLeetCode
- LeetCode-Longest Substring with At Least K Repeating CharactersLeetCodeAST
- LeetCode-Longest Substring with At Most K Distinct CharactersLeetCode
- LeetCode OJ : 3 Longest Substring Without Repeating CharactersLeetCode
- Leetcode javascript 3 longest-substring-without-repeating-charactersLeetCodeJavaScript
- Leetcode-Longest Substring with At Most Two Distinct Characters.LeetCode
- [LeetCode] 2414. Length of the Longest Alphabetical Continuous SubstringLeetCodeAlphabet
- D. Non-Palindromic Substring
- LeetCode Longest Substring Without Repeating Characters(003)解法總結LeetCode
- Longest Substring Without Repeating Characters
- 【LeetCode從零單排】No 3 Longest Substring Without Repeating CharactersLeetCode
- leetcode每日一題LeetCode每日一題
- Leetcode每日一題(1)LeetCode每日一題
- 【Leetcode】3. Longest Substring Without RepeatingCharacters無重最長子串LeetCodeGC
- #3 Longest Substring Without Repeating Characters[M]
- 3. Longest Substring Without Repeating Characters
- 149 Longest Substring Without Repeating Characters
- LintCode-Longest Common Substring
- LeetCode每日一題:sort colorsLeetCode每日一題
- [LeetCode] Longest Substring Without Repeating Characters 最長無重複字元的子串LeetCode字元
- LeetCode 第 14 題(Longest Common Prefix)LeetCode
- LeetCode 每日一題「判定字元是否唯一」LeetCode每日一題字元
- LeetCode每日一題:Nim遊戲(No.292)LeetCode每日一題遊戲
- LeetCode每日一題: 找不同(No.389)LeetCode每日一題