当前位置:编程学习 > C/C++ >>

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

 

成对的字符串

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;

}

 

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

向山顶爬去~~~

补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,