0
点赞
收藏
分享

微信扫一扫

codeforce div3-A

雨鸣静声 2022-04-04 阅读 50
算法c++

做题时先把可能的情况列一下

tuuum
m

d
d

找几个特别的发现规律:

题说长度为奇数,那么我们发现没次删除两个,那么留下的那个次序必为奇数。但我们没有考虑为1的情况其下标为0,所以需要特判,再进一层次考虑我们可能会遇到相同不连续的字母,从该字母的下一位继续find,直至找不到返回-1。

#include<iostream>
using namespace std;
int main()
{
	int n;
	cin>>n;
	getchar();
	while(n--)
	{
		string s1;
		cin>>s1;                                
		char c;
		cin>>c;
		int ans=s1.find(c);                    //先找到第一次出现的位置 
        while(1)                               //注意find找不到是会返回-1的所以必须特判 
		{
			//if((s1.size()-ans%2)%2&&ans>=0)  //能找到说明他的位次是一个奇数但是他的下标为一个偶数 
			if(ans%2==0&&ans>=0||s1.size()==1&&ans==0) 
			{
				cout<<"Yes"<<endl;            //还有就是单独出现他的位置为0  0%2==0需要特判 
				break;
			 } 
			 else
			 {
			 	ans=s1.find(c,ans+1);
				 if(ans==-1)
				 {
				 	cout<<"No"<<endl;
				 	break;
				  } 
			 }
			 
		}	
	}
	return 0;
}
举报

相关推荐

0 条评论