Java经典算法:最短回文

给定字符串S,您可以通过在字符串前面添加字符来将其转换为回文。查找并返回通过执行此转换可以找到的最短回文。
例如,给定“ aacecaaa”,返回“ aaacecaaa”;给定“ abcd”,返回“ dcbabcd”。
Java解决方案1
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(i==s.length())
    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;}

Java经典算法:最短回文_第1张图片

你可能感兴趣的:(字符串,算法,java,jdk,leetcode)