给你一个字符串 s
,找到 s
中最长的回文子串。
示例 1:
输入:s = "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。
示例 2:
输入:s = "cbbd" 输出:"bb"
题解:1.暴力枚举
从头左开始和右对比;
class Solution {
public String longestPalindrome(String s) {
int len=s.length();
if(len<2){
return s;
}
int maxLen=1;
int begin=0;
//s.chatAt(i) 每次都会检查数组下标越界,因此先换行
char[] ch=s.toCharArray();
for(int i=0;i<len-1;i++){
for(int j=i+1;j<len;j++){
if(j-i+1>maxLen&&vvv(ch,i,j)) {
maxLen = j - i + 1;
begin = i;
}
}
}
return s.substring(begin,begin+maxLen);
}
private boolean vvv(char[] ch,int left,int right){
while(left<right){
if(ch[left]!=ch[right]){
return false;
}
left++;
right--;
}
return true;
}
}