您的位置:首页 > 其它

开始刷题leetcode day47: Longest Palindromic Substring

2015-06-22 11:01 441 查看
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.

java:

public class Solution {

public String longestPalindrome(String s) {

int left=0;

int right =0;

int maximum = 0;

if(s.length() < 2) return s;

for(int i=0; i<s.length(); i++)

{

int len1 = expandPalindrome(s, i,i);

int len2 = expandPalindrome(s,i,i+1);

int larger = Math.max(len1,len2);

if(larger > maximum)

{

left = i-(larger-1)/2;

right = i + larger/2;

maximum = larger;

}

}

return s.substring(left,right+1);

}

public int expandPalindrome(String s, int left, int right)

{

while(left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right))

{

left --;

right ++;

}

return right -left - 1;

}

}

注意:left >= 0 && right < s.length()需要取到底,然后return right-left-1. 避免取到i和i+1不相等的情况还返回2的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: