题目描述
很久很久以前,有一个神秘而美丽的地方,被人们称为回声湖。这座湖位于一个幽静的山谷中,被陡峭的山峦环绕。有一天,一位名叫 小 L 的年轻女子决定探索回声湖的秘密。她听说湖中有一种神奇的力量,能将人们的话语回荡在山谷中,仿佛被大自然的声音所接受和回应。小 L 沿着崎岖的小径走到湖边,湖水平静如镜,映照出周围山峦的美景。她鼓起勇气,大声呼喊:“你好!”在她惊讶的目光中,她的声音以奇特的方式回响回来,仿佛被湖水吸收然后以更加悦耳动听的音调传达出来。”你好你好你好你好……“,这让小 L 兴奋不已,她开始用各种声音和歌曲去挑战回声湖。
无论她高声歌唱、低声耳语,还是吹奏乐曲,湖水总是以最纯净、和谐的方式将声音回响回来。湖水仿佛拥有自己的灵魂,能够感知和理解人类的情感和意图。小 L 发现她与回声湖之间建立起一种特殊的联系。
小 L 现在尝试只发出 "do, re, mi" 的音,"do, re, mi" 被表示成 drm 的小写字符字符串。
由于杂音和回声叠加的影响,小 L 只听到了回声的一部分——我们表示成接收到的字符串。也就是说,如果回声湖发出来若干个 𝑑𝑟𝑚 构成的字符串的子串,那么我们认为这个回声是纯净的回声。
举例:
𝑑𝑟𝑚𝑑𝑟𝑚 、 𝑑𝑟 、 𝑚𝑑𝑟𝑚 和 𝑟𝑚𝑑 都被认为是纯净的回声。
反之, 𝐷𝑟𝑚、𝑟𝑑𝑚𝑟𝑑𝑚 、𝑚𝑚𝑑𝑟 和 𝑑𝑟𝑚𝑚 都被认为是不纯净的回声。
输入
第一行,一个正整数 ,表示有 𝑛 组回声。
接下来 𝑛 行,每行一个只包含大小写英文字母的字符串。
输出
共 行,对于每一个回声湖发出的回声,如果是纯净的回声,输出 𝑌𝐸𝑆 ,否则输出 𝑁𝑂 。
输入样例 复制
10 DRM rmdrm drmdrm echo dr rdmrdm mdrm mmdr rmd drmm
输出样例 复制
NO YES YES NO YES NO YES NO YES NO
说明
数据范围与提示
对于 50% 的数据,𝑛=1 ;
对于 100% 的数据, 1≤𝑛≤100 ,字符串 𝑠 的长度 |𝑠|≤100。
CODE:
#include<bits/stdc++.h>
using namespace std;
int n;
int main()
{//必须是 drmdrmdrmdrm…中的一个连续小段
ios::sync_with_stdio(0);
cin>>n;
while(n--)
{
string s;
int f=0;
cin>>s;
int len=s.size();
if(len==1 && (s[0]=='r' || s[0]=='d' || s[0]=='m'))
{//特殊判断:只有一个字母且是d或r或m
cout<<"YES"<<endl;
continue;
}
if(len==1 && (s[0]!='r' && s[0]!='d' && s[0]!='m'))
{//特殊判断,与上面相反
cout<<"NO"<<endl;
continue;
}
for(int i=0;i<len-1;i++)
{//每一个位都检验一遍
if(s[i]=='d' && s[i+1]=='r') continue;
if(s[i]=='r' && s[i+1]=='m') continue;
if(s[i]=='m' && s[i+1]=='d') continue;
else
{//不是则打标记退出
f=1;
cout<<"NO"<<endl;
break;
}
}
if(f==0) cout<<"YES"<<endl;
}
return 0;
}