public String longestPalindrome(String s) {
final char[] chars = s.toCharArray();
int begin = 0;
int max = 1;
//双循环
for (int i = 0; i < chars.length; i++) {
for (int j = i + 1; j < chars.length; j++) {
if (j - i + 1 > max && is(chars, i, j)) {
max = j - i + 1;
begin = i;
}
}
}
return s.substring(begin, begin + max);
}
private boolean is(char[] chars, int left, int right) {
while (left < right) {
if (chars[left] != chars[right]) {
return false;
}
left++;
right--;
}
return true;
}
2.解题思路
从每一个位置触发都有可能是最大值,所以双循环
回文串的基本写法
更新最大值和起始值的条件
更新最大值和起始值
获取所求的字符串,使用字符串截取方法
3.注意事项
什么条件下需要更新 max 的值呢
判断回文串的基本写法
三.自我分析
1.解题思路
apl复制代码
if 有思路
开写
else
去看相关标签,确定具体解题方法
if 有思路
开写
else
看提示信息
if 有思路
开写
else
看答案