NYOJ 752 又见回文串

来源:互联网 发布:淘宝少发了一件怎么办 编辑:程序博客网 时间:2024/06/06 22:56

又见回文串

时间限制:1000 ms  |  内存限制:65535 KB
难度:2
描述

    回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。今天,PIAOYI又遇见一个关于字符串的题:两人玩一个游戏,给一个字符串,两人轮流删除字符串中的任意一个字符,当某人删除字符后,若该字符串可以经过重新整理后是一个回文串,则他获胜。当两人足够聪明均不出现操作失误的情况,先手是否可以获胜。

输入
多组测试数据,输入一个字符串(所有字符串长度小于10000大于1,且都是小写字母)
输出
若先手获胜输出 Yes , 否则输出 No。每组输出结果占一行。
样例输入
aabbabc
样例输出
YesNo
算法分析:

本题关键在于意识到当字母数量为奇数的字母的个数,当大于2且为奇数时,后手取胜,否则先手取胜。

#include<stdio.h>#define N 10005int main(){char str[N];int s[26];while(~scanf("%s",str)){int i=0,num=0;for(i=0;i<26;i++)s[i]=0;for(i=0;str[i]!='\0';i++){s[str[i]-'a']++;}for(i=0;i<26;i++){if(s[i]%2==1)num++;}if(num<=2)printf("Yes\n");else{printf("%s\n",num%2==1?"No":"Yes");}}return 0;}
0 0
原创粉丝点击