Is Mike's palindrome-related problem in CodeForces 798A solvable efficiently?
- 内容介绍
- 文章标签
- 相关推荐
本文共计299个文字,预计阅读时间需要2分钟。
题目链接:http://codeforces.com/contest/798/problem/A
题目描述:给你一个字符串,问你能否只改变其中一个字母使其成为回文串。
解析:原字符串是回文串,长度为偶数或奇数。若长度为偶数,则任意一个字母都不可能通过改变变为回文串;若长度为奇数,则可以改变中间的字母使其成为回文串。
题目链接:codeforces.com/contest/798/problem/A
题意:给你一个字符串,问你是否能只更改其中一个字母使得这个字符串是回文串
解析:原本是回文串,长度是偶数,那么是输出NO的,直接乱搞一下,就可以了
#include <bits/stdc++.h>
using namespace std;
int main(void)
{
string s1,s2;
cin>>s1;
s2 = s1;
reverse(s1.begin(),s1.end());
int ans = 0;
for(unsigned i=0;i<s1.length();i++)
{
if(s1[i]!=s2[i])
ans++;
}
if(ans==2 || (ans==0 && s1.length()%2))
puts("YES");
else
puts("NO");
return 0;
}
本文共计299个文字,预计阅读时间需要2分钟。
题目链接:http://codeforces.com/contest/798/problem/A
题目描述:给你一个字符串,问你能否只改变其中一个字母使其成为回文串。
解析:原字符串是回文串,长度为偶数或奇数。若长度为偶数,则任意一个字母都不可能通过改变变为回文串;若长度为奇数,则可以改变中间的字母使其成为回文串。
题目链接:codeforces.com/contest/798/problem/A
题意:给你一个字符串,问你是否能只更改其中一个字母使得这个字符串是回文串
解析:原本是回文串,长度是偶数,那么是输出NO的,直接乱搞一下,就可以了
#include <bits/stdc++.h>
using namespace std;
int main(void)
{
string s1,s2;
cin>>s1;
s2 = s1;
reverse(s1.begin(),s1.end());
int ans = 0;
for(unsigned i=0;i<s1.length();i++)
{
if(s1[i]!=s2[i])
ans++;
}
if(ans==2 || (ans==0 && s1.length()%2))
puts("YES");
else
puts("NO");
return 0;
}

