내용 |
public class Palindrome {
public static void main(String[] args) {
System.out.println(new Palindrome().solution("aaaabaa"));
}
public int solution(String str) {
String result = shortestPalindrome(str);
System.out.println(result);
return result.length();
}
public String shortestPalindrome(String str) {
int j = 0;
for (int i=str.length()-1; i>=0; i--) {
if (str.charAt(i) == str.charAt(j)) {
j++;
}
}
if (j == str.length()) {
return str;
}
String suffix = str.substring(j);
String prefix = new StringBuilder(suffix).reverse().toString();
String mid = shortestPalindrome(str.substring(0, j));
String ans = prefix + mid + suffix;
return ans;
}
}
|