記錄一下新的面試題目,其實題目是舊的,只是我才見到。以前研究過,只不過以前的解法不容易理解,現在有了新的遞歸解法。記錄一下。
public String shortestPalindrome(String s){
int i = 0;
int j = s.length() -1;
while(j>=0){
if(s.charAt(i) == s.charAt(j)){
i++;
}
j--;
}
if(s.length() == i)
return s;
String suffix = s.substring(i);
String prefix = new StringBuilder(suffix).reverse().toString();
String mid = shortestPalindrome(s.substring(0,i));
return prefix + mid + suffix;
}
這樣解決問題,感覺比較理想。容易理解記憶,希望下次再次遇到能夠直接搞定。