题目:
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.
思路:
以每个点为基础,寻找回文字符串,两种情况,一种是形如aba,中心店两边是对称的,长度为奇数,另一种是形如aa,长度为偶数。
packagestring;publicclassLongestPalindromicSubstring {publicString longestPalindrome(String s) {intlen =s.length();
String max= "";for(inti = 0; i < len; ++i) {
String res=getStr(s, len, i, i);if(res.length() >max.length())
max=res;if(i + 1 < len && s.charAt(i) == s.charAt(i + 1)) {
res= getStr(s, len, i, i + 1);if(res.length() >max.length())
max=res;
}
}returnmax;
}PRivateString getStr(String s,intlen,intleft,intright) {while(right < len && left >= 0 && s.charAt(left) ==s.charAt(right)) {--left;++right;
}returns.substring(left + 1, right);
}publicstaticvoidmain(String[] args) {//TODO Auto-generated method stubLongestPalindromicSubstring l =newLongestPalindromicSubstring();
System.out.println(l.longestPalindrome("aabbcc"));
}
}