LeetCode


题目:

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,长度为偶数。

package string;

public class LongestPalindromicSubstring {

public String longestPalindrome(String s) {
int len = s.length();
String max
= "";
for (int i = 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;
}
}

return max;
}

private String getStr(String s, int len, int left, int right) {
while (right < len && left >= 0 && s.charAt(left) == s.charAt(right)) {
--left;
++right;
}
return s.substring(left + 1, right);
}

public static void main(String[] args) {
// TODO Auto-generated method stub
LongestPalindromicSubstring l = new LongestPalindromicSubstring();
System.out.println(l.longestPalindrome(
"aabbcc"));
}

}

 

本站声明
本文转载自:http://www.cnblogs.com/shuaiwhu/p/5032955.html     作者:Longest Palindromic Substring - NULL00     发布日期:2015/12/09     本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。


 
© 2014-2017 ITdaan.com 粤ICP备14056181号