题目链接
题目大意:给你一个字符串问你是不是由,
dream
,dreamer
,erase
anderaser
.这几个单词组成
思路:这个思路还是可以的,就是从后往前枚举拿出来判断,可以就截去就可以了,
代码:
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
const string s1="dream";
const string s2="dreamer";
const string s3="erase";
const string s4="eraser";
string str;
int main()
{
/*cout<<s1.substr(0,2)<<endl;
cout<<s1<<endl;*/
cin>>str;
for(; str!=""; )
{
int i=str.length();
if(str.length()==0) break;
int flag=0;
string temp;
for(int j=5; j<=7; j++)
{
if(i<j)
continue;
else
{
temp=str.substr(i-j);
//cout<<i-j<<endl;
if(temp==s1|temp==s2||temp==s3||temp==s4)
{
flag=1;
str=str.substr(0,i-j);
//cout<<str<<endl;
break;
}
}
}
if(flag==0)
{
cout<<"NO"<<endl;return 0;
}
}
cout<<"YES"<<endl;
}