题目
给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。
示例 1:
输入:"aacecaaa"
输出:"aaacecaaa"
示例 2:
输入:"abcd"
输出:"dcbabcd"
解法
class Solution {
public String shortestPalindrome(String s) {
char[] c1 = new char[s.length()];
char[] c2 = s.toCharArray();
for(int i = 0; i < c1.length; i++){
c1[i] = c2[c2.length - 1-i];
}
P:for(int i = 0; i < c1.length; i++){
if(c1[i] == c2[0]){
for(int j = i+1; j<c1.length; j++){
if(c1[j] != c2[j-i]){
continue P;
}
}
StringBuilder b = new StringBuilder();
for(int j = 0; j < i; j++){
b.append(c1[j]);
}
b.append(s);
return b.toString();
}
}
return "";
}
}