Brutal Force: O(n^2)
public class Solution { public String longestPalindrome(String s) { String maxPal=""; for(int i=0;imaxPal.length()) maxPal=str1; String str2=lenofPal(i, i+1, s); if(str2.length()>maxPal.length()) maxPal=str2; } return maxPal; } private String lenofPal(int l, int r, String s) { while(l>=0&&r
Manacher: O(n)
public class Solution { public String longestPalindrome(String s) { char[] arr=new char[s.length()*2+1]; for(int i=0;ii) len[i]=Math.min(mx-i, len[2*po-i]); else len[i]=1; while(i-len[i]>=0&&i+len[i] mx) { mx=i+len[i]; po=i; } if(len[i]-1>ret.length()) ret=s.substring((i-len[i]+1)/2,(i+len[i]-1)/2); } return ret; }}