给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
示例 1:
输入: “babad”
输出: “bab”
注意: “aba” 也是一个有效答案。
示例 2:
输入: “cbbd”
输出: “bb”
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-palindromic-substring
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
public String longestPalindrome(String s) {
if(s==null || s.length()<1)
return "";
int n=s.length();
int i=0,j=0;
int i1=0,j1=0,k=0;
int len=0;
while(i<n){//i从0~n-1开始遍历
k=i;
j=i; //单个字符是回文的
while(i>=0 && j<n){
if(s.charAt(i) == s.charAt(j)){
i--;
j++;
}
else{
break;
}
}
if(j-i-1>len){
len=j-i-1;
i1=i+1;//0 0
j1=j-1;//0
}
i=k; j=i+1;
while(i>=0 && j<n){
if(s.charAt(i) == s.charAt(j)){
i--;
j++;
}
else{
break;
}
}
if(j-i-1>len){
len=j-i-1;
i1=i+1;//0 0
j1=j-1;//0
}
i=k+1;
}
String subs;
subs=s.substring(i1,j1+1);
return subs;
}
}