ACM成对的字符串(C++实现)

2014-11-24 12:38:57 · 作者: · 浏览: 4

成对的字符串

Description

有些字符串,如果满足下面的性质,则称为成对的字符串:

a. 所有的字符在字符串中出现偶数次

b. 每一对相同的字符之间不会有出现奇数次的字符

现在给你一些字符串,请判断这些字符串是否为成对的字符串。

输入:

第一行是一个整数K,表示有多少个测试用例,以后每行一个测试用例。每行为一个字符串(长度不超过1000个字符)。

输出:

每行输出一个测试用例的结果。如果是,输出Yes,否则输出No。

Sample Input

2

aAbbAaaabbcc

abcdefghijklmn

Sample Output

Yes

No

#include

using namespace std;

char str[1000];

int cNum[100];

int main()

{

int cas;

cin>>cas;

while(cas--)

{

scanf("%s",str);

int k = strlen(str);

memset(cNum,0,sizeof(cNum));

int i=0;

int sum =0;

if(k%2)

{

cout<<"No"<

continue;

}

while(i

{

if(cNum[str[i]]==0)

{

cNum[str[i]] = i+1;

}

else

{

if((i-cNum[str[i]])%2==0){sum+=2;cNum[str[i]]=0;}

}

i++;

}

if(sum==k)

cout<<"Yes"<

else

cout<<"No"<

}

return 0;

}

摘自我和我追逐的梦~~~

向山顶爬去~~~