给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
示例 1:
输入: "babad"
输出: "bab"
注意: "aba" 也是一个有效答案。
示例 2:
输入: "cbbd"
输出: "bb"
- 解法一:暴力法 遍历子字符串,判断是否是回文字符串。如果是回文字符串并且该子串的长度是最长的,则记录下该字串和它的长度。
class Solution {
public String longestPalindrome(String s) {
int len = s.length();
int max = 0;
String result = "";
for(int i = 0; i < s.length(); ++i){
int length = 0;
for(int j = s.length() - 1; j >= i; --j){
String temp = s.substring(i,j + 1);
if(isPalindromicString(temp)){
length = temp.length();
if(max <= length){
max = length;
result=temp;
break;
}
}
}
}
return result;
}
public boolean isPalindromicString(String s){
int i = 0,j = s.length() -1;
while(i < j){
if(s.charAt(i) == s.charAt(j)){
i++;
j--;
}
else
break;
}
if(i >= j)
return true;
else
return false;
}
}