-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Although a TLE but i like the main idea of suffix array, the real life will never give you a TLE (unless your boss will);
public class Solution {
public String longestPalindrome(String s) {
if (s == null || s.length() < 2) return s;
int len = s.length();
StringBuilder sb = new StringBuilder(s + "$").append(new StringBuilder(s).reverse());
String[] suffixArr = new String[sb.length()];
for (int i = 0; i < suffixArr.length; i++) {
suffixArr[i] = sb.substring(i);
}
Arrays.sort(suffixArr);
String res = "";
for (int i = 1; i < suffixArr.length; i++) {
int j = 0;
while (j < suffixArr[i - 1].length() && j < suffixArr[i].length() && suffixArr[i - 1].charAt(j) == suffixArr[i].charAt(j)) j++;
if (j > res.length()){
String lcp = suffixArr[i - 1].substring(0, j);
if (s.indexOf(lcp) == s.indexOf(new StringBuilder(lcp).reverse().toString())) {
res = lcp;
}
}
}
return res;
}
}Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels