class Solution {
//判断传入的字符串是否为回文字符串
public static boolean fun(String str){
int j = str.length();
for(int i = 0;i <= str.length() / 2; i++){
//从头尾开始比较,不相同则返回false,否则j左移(i通过for循环来右移)
if(str.charAt(i) != str.charAt(j - 1)){
return false;
}
j--;
}
return true;
}
public static String longestPalindrome(String s){
if (s.length() < 2){
return s;
}
int maxLen = 0;
int start = 0;
for (int i = 0; i < s.length() - 1; i++) {
for (int j = i + 1; j < s.length(); j++) {
if (j - i + 1 > maxLen && fun(s.substring(i,j + 1))){
//记录最大长度
maxLen = j - i + 1;
start = i;
}
}
}
if (start == 0 && maxLen == 0){
return s.substring(0,1);
}
return s.substring(start, start + maxLen);
}
}
1、先写是否为回文字符串的函数
2、双层循环遍历
3、substring(0,0)是取不到元素的,substring函数参数左闭右开。