温馨提示: \color{#E74C3C}\text{温馨提示:} 温馨提示:
遇见题解勿抄袭,棕名封号两行泪。 \color{#E74C3C}\text{遇见题解勿抄袭,棕名封号两行泪。} 遇见题解勿抄袭,棕名封号两行泪。
思路
这道题其实很简单,直接使用 string
中的查找和计数函数!
统计函数模板:
int cnt=count(字符串.begin(), 字符串.end(), 要查找的字符);
查找函数模板:
if (字符串.find(字符串) == string::npos ) 语句1; //没找到
if (字符串.find(字符串) != string::npos ) 语句2; //找到了
好了,明白了思路,那就上代码了!
Coding Time \text{Coding Time} Coding Time
#include <bits/stdc++.h>
using namespace std;
int t,cnt;
string a;
bool flag;
int main()
{
scanf("%lld",&t);
while (t--)//注意是多组数据!
{
cin>>a;
flag=false;
if(a.find('D') != string::npos &&a.find('X')!=string::npos)//如果有王炸
{
printf("Yes\n");
continue;
}
for (int i=0;i<a.length();i++)//枚举,查找第i张牌
{
cnt=count(a.begin(), a.end(), a[i]);//查找有几个 相同的牌
if(cnt>=4)//如果有四个相同的牌
{
printf("Yes\n");//输出Yes
flag=true;//标记
break;
}
}
if(!flag) printf("No\n");//如果没有炸,输出No
}
return 0;//完结,撒花
}