java最短回文
我写的代码中有String
(最初不是回文!)我的方法是把它转换成回文单词。例如:
Given "aacecaaa", return "aaacecaaa".
Given "abcd", return "dcbabcd".
当我尝试"abcd"
时,它只会返回我"dabcd"
,尽管事实上我还有一个助手方法private static boolean check(String myString)
,可以检查它是否已成为回文单词。
我试着调试代码,问题出在方法private static boolean check(String myString)
中,它甚至根本没有进入循环!smb能帮我解决这个问题吗
public class ConverToPalindrome {
public static void main(String[] args){
String myString = "abcd";
String convert = shortestPalindrome(myString);
System.out.println(convert);
}
public static String shortestPalindrome(String myString){
String finalResult = "";
String temp = "";
for(int i = myString.length() - 1; i >= 0; i--){
temp += myString.substring(i) + "" + myString;
if(check(temp) == true){
finalResult = temp;
break;
}
}
return finalResult;
}
private static boolean check(String myString){
String temp = "";
for(int i = myString.length() - 1; i >= 0; i--){
temp += myString.charAt(i);
}
if(temp.equals(myString)){
return true;
}
else{
return false;
}
}
}
# 1 楼答案
改变
到
还可以按相反顺序构建临时字符串(逐个字符),并将其与原始字符串组合,直到形成回文