添加字母的位置需要注意:
- 添加在开头
- 添加在结尾
3.添加在中部
转换为前两种,移除首位相同的字母
import java.util.Scanner;
/**
* @author songquanheng
* 2022/1/25-22:01
*/
public class Huiwen {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
String string = scanner.next();
if (canBecomeHuiweb(string)) {
System.out.println("Yes");
} else {
System.out.println("No");
}
}
}
/**
* 在字符串头部或者尾部添加1个字符串,判断能否成为回文字符串
*
* @param text 待判断的字符串
* @return
*/
public static boolean canBecomeHuiweb(String text) {
int i = 0;
char[] chars = text.toCharArray();
while (chars[i] == chars[chars.length - 1 - i] && i<(chars.length-1)/2) {
i++;
}
text = text.substring(i, text.length() - i);
String substring = text.substring(0, 1);
String subString2 = text.substring(text.length() - 1, text.length());
String res = text + substring;
return isHuiweb(res) || isHuiweb(subString2 + text);
}
public static boolean isHuiweb(String text) {
char[] chars = text.toCharArray();
StringBuilder stringBuilder = new StringBuilder();
for (int i = chars.length - 1; i >= 0; i--) {
stringBuilder.append(chars[i]);
}
String res = stringBuilder.toString();
return res.equals(text);
}
}