成對的字符串
Description
有些字符串,如果滿足下面的性質,則稱為成對的字符串:
a. 所有的字符在字符串中出現偶數次
b. 每一對相同的字符之間不會有出現奇數次的字符
現在給你一些字符串,請判斷這些字符串是否為成對的字符串。
輸入:
第一行是一個整數K,表示有多少個測試用例,以後每行一個測試用例。每行為一個字符串(長度不超過1000個字符)。
輸出:
每行輸出一個測試用例的結果。如果是,輸出Yes,否則輸出No。
Sample Input
2
aAbbAaaabbcc
abcdefghijklmn
Sample Output
Yes
No
#include<iostream>
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"<<endl;
continue;
}
while(i<k)
{
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"<<endl;
else
cout<<"No"<<endl;
}
return 0;
}
摘自我和我追逐的夢~~~
向山頂爬去~~~