Leetcode 214. Shortest Palindrome
题目链接: Shortest Palindrome
难度:Hard
题目大意:
在字符串的开头增添一些字符,使得字符串为回文串。
思路:
参考高赞回答,寻找原始字符串中从第一个字符开始的最长回文子串,然后将不是回文串的部分翻转添加到字符串头部。
代码
class Solution {
public String shortestPalindrome(String s) {
int n=s.length();
if(s.length()==0||s.length()==1){
return s;
}
StringBuilder sb=new StringBuilder();
for(int i=s.length()-1;i>=0;i--){//将s反转
sb.append(s.charAt(i));
}
for(int i=0;i<n;i++){
String t=sb.substring(i,n);
if(t.equals(s.substring(0,n-i))){
return sb.substring(0,i)+s;
}
}
String t=sb.substring(0,n-1);
return t+s;
}
}