力扣刷题
题目
5.最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
示例 1:
输入: “babad”
输出: “bab”
注意: “aba” 也是一个有效答案。
示例 2:
输入: “cbbd”
输出: “bb”
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-palindromic-substring/
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
java解答
1.暴力求解
class Solution {
public String longestPalindrome(String s) {
int len=s.length();
if(len<2){
return s;
}
char []zyx=s.toCharArray();
int begin=0,maxlen=1;
for(int k=0;k<=len-2;k++){
for(int m=k+1;m<=len-1;m++){
if(m-k+1>maxlen&&isPalindrome(zyx,k,m)){
maxlen=m-k+1;
begin=k;
}
}
}
return s.substring(begin,begin+maxlen);
}
public static boolean isPalindrome(char[]a,int i,int j){
while(i<j){
if(a[i]!=a[j]){
return false;
}
else{
i++;
j--;
}
}
return true;
}
}