2009.回声湖

题目描述

       很久很久以前,有一个神秘而美丽的地方,被人们称为回声湖。这座湖位于一个幽静的山谷中,被陡峭的山峦环绕。有一天,一位名叫 小 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;
}

  • 24
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值