1014场算法双周赛A题 三带一 题型:模拟

45 阅读1分钟

1.三带一 - 蓝桥云课 (lanqiao.cn)

我刚开始是这样写的,但是没有过:

#include<bits/stdc++.h>
#define int  long long
using namespace std;
void solve()
{
	cin.tie(0)->sync_with_stdio(0); 
	string s;cin>>s;
	
	int cnt=1;
	for(int i=1;i<s.size();i++) 
    {
    	if(s[i]!=s[0])
    	{
    		cnt++;
		}
	}
	if(cnt==2)cout<<"Yes"<<endl;
	
	else cout<<"No"<<endl;
}
signed main()
{
	int t;cin>>t;
	while(t--)
	{
		solve();
	}
	return 0;
}

下面这个我用map就过了,map是一个nlog(n)的算法:

#include<bits/stdc++.h>
#define int  long long
using namespace std;
map<char,int> mp;


void solve()
{
	mp.clear();
	string s;cin>>s;
	
	for(int i=0;i<s.size();i++)
	{
	   mp[s[i]]++;	
	}
	
	int cnt=0;
	for(auto  &it:mp)
	{
		if(it.second==3)
	    cnt++;   
	}
	if(cnt==1)cout<<"Yes"<<endl;
	
	else cout<<"No"<<endl; 
}
signed main()
{
	
	int t=1;cin>>t;
	while(t--)
	{
		solve();
	}

	return 0;
	
}

image.png