1 分奇偶中心同时向两侧扩展
leetcode 5. Longest Palindromic Substring
本题要求求出一个字符串的最长回文子串
c++substr() 第二个参数传的是子串的长度,又搞错了
1 class Solution { 2 public: 3 int mx; 4 int Si, Ei; 5 string longestPalindrome(string s) { 6 if(s.length() == 0) return ""; 7 Si = 0; 8 Ei = 1; 9 for(int i = 0; i < s.length(); i++){ 10 countPalindrome(s, i, i); 11 if(i + 1 < s.length()){ 12 countPalindrome(s, i, i + 1); 13 } 14 } 15 return s.substr(Si, Ei - Si); 16 } 17 void countPalindrome(string &s, int i, int j){ 18 while(i >= 0 && j < s.length()){ 19 if(s[i] == s[j]){ 20 i--; 21 j++; 22 }else{ 23 break; 24 } 25 } 26 if(Ei - Si < j - i - 1){ 27 Si = i + 1; 28 Ei = j; 29 } 30 } 31 };
类似题目
leetcode 647. Palindromic Substrings
leetcode 516. Longest Palindromic Subsequence