题目大意:给你一个字符串问你是不是由,dream, dreamer, erase and eraser.这几个单词组成
思路:这个思路还是可以的,就是从后往前枚举拿出来判断,可以就截去就可以了,
代码:
#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; }