class Solution {
public String longestPalindrome(String s) {
if (s == null || s.length() < 1) {
return "";
}
char[] array = s.toCharArray(); // 正确转换字符串为字符数组
for(int i=0;i<array.length;i++)
{
int res=0;
String str1="";
String str="";
for(int j=i;j<array.length;j++)
{
str1=s.substring(i,j);
String reversed = new StringBuilder(str1).reverse().toString();
if(str1.equals(reversed))
{
if(j-i+1>res)
{
res=j-i+1;
str=str1;
}
}
}
}
return str;
}
}
第一遍
GPT做的
class Solution {
public String longestPalindrome(String s) {
if (s == null || s.length() < 1) {
return "";
}
int start = 0; // 回文子串的起始索引
int end = 0; // 回文子串的结束索引
for (int i = 0; i < s.length(); i++) {
// 检查以 i 为中心的回文子串
int len1 = expandAroundCenter(s, i, i);
// 检查以 i 和 i+1 中心的回文子串
int len2 = expandAroundCenter(s, i, i + 1);
// 选择较长的回文子串长度
int len = Math.max(len1, len2);
// 更新回文子串的起始和结束索引
if (len > end - start) {
start = i - (len - 1) / 2;
end = i + len / 2;
}
}
// 返回最长的回文子串
return s.substring(start, end + 1);
}
private int expandAroundCenter(String s, int left, int right) {
while (left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)) {
left--;
right++;
}
// 返回回文子串的长度
return right - left - 1;
}
}