A. Mike and palindrome
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard outputMike has a string s consisting of only lowercase English letters. He wants to change exactly one character from the string so that the resulting one is a palindrome.
A palindrome is a string that reads the same backward as forward, for example strings "z", "aaa", "aba", "abccba" are palindromes, but strings "codeforces", "reality", "ab" are not.
Input
The first and single line contains string s (1 ≤ |s| ≤ 15).
Output
Print "YES" (without quotes) if Mike can change exactly one character so that the resulting string is palindrome or "NO" (without quotes) otherwise.
Examples
input
abccaa
output
YES
input
abbcca
output
NO
input
abcda
output
YES
题意:给出一个串,能否改变其一个字符使其变为回文串。这题有两个坑点,注意一下就好了。 注意一下 abccba 和 abcba 这两种情况即可。
#include<bits/stdc++.h> using namespace std; const int N = 100 + 10; char a[N]; int main() { while(cin >> a) { int l = strlen(a); int sum = 0; for(int i = 0; i < l; i++) if(a[i] != a[l - i - 1]) sum++; if(l & 1 && sum == 0) sum += 2; printf(sum == 2 ? "YES\n" : "NO\n"); } }
探讨通过更改一个字符使字符串变成回文串的问题,包括输入输出格式与示例。
1830

被折叠的 条评论
为什么被折叠?



