题目描述
给定一个字符串,问是否能通过添加一个字母将其变为回文串
输入描述
一行一个由小写字母构成的字符串,字符串长度小于等于10
输出描述
输出答案(YES\NO)
输入
coco
输出
YES
public class Palindrome {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String str = sc.next();
char[] chs = str.toCharArray();//将此字符串转换为新的字符数组
System.out.println(sovle(chs));
}
sc.close();
}
private static String sovle(char[] chs) {
int start =0;
int end = chs.length - 1;
String res = "YES";
while (start <= end) {
if (chs[start] == chs[end]) {
start++;
end--;
//相当于删除后面的元素(在前面插入一个元素)
} else if(chs[start] == chs[end-1]) {
end--;
} else if (chs[start + 1] == chs[end]) {
start++;
} else {
res = "NO";
break;
}
}
return res;
}
}