Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.
Example 1:
Input: "babad" Output: "bab" Note: "aba" is also a valid answer.
Example 2:
Input: "cbbd" Output: "bb"
自己写的 效率不是很好
import java.util.HashMap;
public class Solution {
public String longestPalindrome(String s) {
//key:长度 vlaue:该长度对应的字符串
HashMap<Integer, String> map=new HashMap<Integer, String>();
int max=0;
//i 起始点 j结束点
for(int i=0;i<s.length();i++)
{
for(int j=i;j<s.length();j++)
{
//判断是否为回文串
if(isPalindrome(s, i, j))
//判断该回文串长度是否最大
if((j-i+1)>=max)
{
max=(j-i+1);
String str=s.substring(i, j+1);
//把当前最长的字符串存进map
map.put(max, str);
}
}
}
//取出最长的字符串
return map.get(max);
}
public boolean isPalindrome(String s,int st,int end) {
while(st<end)
{
if(s.charAt(st++)!=s.charAt(end--))
return false;
}
return true;
}
}