您的位置:首页 > 其它

[LeetCode]Longest Palindromic Substring

2015-10-09 08:32 302 查看
题目:点击打开链接

public class Solution {
public String longestPalindrome(String s) {
if (null == s) {
return null;
}

int length = s.length();
if (1 >= length) {
return s;
}

int longest = 1;
int start = 0;
int center = 0;
while (center + 1 < length) {
if ((length - center) * 2 + 1 < longest) {
break;
}

int i = 0;
while ((center + i < length)
&& (s.charAt(center + i) == s.charAt(center))) {
i++;
}

int step = 1;
while ((center >= step) && (center + step + i < length + 1)
&& (s.charAt(center - step)
== s.charAt(center + step + i - 1))) {
step++;
}

step--;
if (step * 2 + i > longest) {
longest = step * 2 + i;
start = center - step;
}

center += i;
}

return s.substring(start, start + longest);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: