给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。
leetcode
解题思路:
- 首先找到最长的回文串;
- 然后添加之前无法组成回文串的部分。
class Solution {
public String shortestPalindrome(String s) {
String reverse = new StringBuffer(s).reverse().toString();
for(int i = 0; i < reverse.length(); i++){
// 当前是否为回文串
if(s.startsWith(reverse.substring(i))){
// 添加之前不是回文的部分
return reverse.substring(0, i) + s;
}
}
return "";
}
}