【LEETCODE】【最长回文子串】
给你一个字符串 s,找到 s 中最长的回文子串。
示例 1:
输入:s = “babad”
输出:“bab”
解释:“aba” 同样是符合题意的答案。
示例 2:
输入:s = “cbbd”
输出:“bb”
示例 3:
输入:s = “a”
输出:“a”
示例 4:
输入:s = “ac”
输出:“a”
提示:
1 <= s.length <= 1000
s 仅由数字和英文字母(大写和/或小写)组成
public static String longestPalindrome(String s) {
int len = s.length();
if(len <= 1)
return s;
String longest = s.substring(0,1);
// 定义窗口,i为窗口长度,初始为2
for(int i = 2; i < len+1; i++) {
// 从坐标j = 0开始滑动
for(int j = 0; j < len-i+1; j++) {
if(isPalindromic(s.substring(j, j+i))) {
longest = s.substring(j, j+i);
break;
}
}
}
return longest;
}
private static boolean isPalindromic(String substr) {
int len = substr.length();
for(int i = 0; i < len/2; i++) {
if(substr.charAt(i) != substr.charAt(len - i -1))
return false;
}
return true;
}