leetcode.5. 最长回文子串
给你一个字符串 s,找到 s 中最长的回文子串。
示例 1:
输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。
示例 2:
输入:s = "cbbd"
输出:"bb"
提示:
1 <= s.length <= 1000
s 仅由数字和英文字母组成
class Solution {
public String longestPalindrome(String s) {
if(s==null&&s.length()==0){
return "";
}
int range[]=new int[2];
char[]str=s.toCharArray();
for(int i=0;i<s.length();i++){
i=find(str,i,range);
}
return s.substring(range[0],range[1]+1);
}
public static int find(char[]str,int low,int []range){
int high=low;
while(high<str.length-1&&str[high+1]==str[low]){
high++;
}
int ans=high;
while(high<str.length-1&&low>0&&str[high+1]==str[low-1]){
high++;
low--;
}
if(high-low>range[1]-range[0]){
range[0]=low;
range[1]=high;
}
return ans;
}
}

浙公网安备 33010602011771号