やった!!成功!! 11/12 火
前回の記事で、「メモリ不足で、ダメだあああ」と言っていた問題について、次のとおりプログラムを作成できました。ポインタの挙動については、まだまだ修行が必要だと感じています。
サンプルプログラム(高瀬作成)
#include <bits/stdc++.h>
using namespace std;
int kensa(string *tmp, int num, int pt, int ll) {
int res;
string s;
if (pt==ll) return 1;
// case "dream"
s = (*tmp).substr(pt,5);
if (s=="dream") {
res = kensa(tmp,num+1,pt+5, ll);
if (res > 0) return res;
}
// case "dreamer"
s = (*tmp).substr(pt,7);
if (s=="dreamer") {
res = kensa(tmp,num+1,pt+7, ll);
if (res > 0) return res;
}
// case "erase"
s = (*tmp).substr(pt,5);
if (s=="erase") {
res = kensa(tmp,num+1,pt+5, ll);
if (res > 0) return res;
}
// case "eraser"
s = (*tmp).substr(pt,6);
if (s=="eraser") {
res = kensa(tmp,num+1,pt+6, ll);
if (res > 0) return res;
}
return 0;
}
int main() {
int res;
string S;
cin >> S;
res = kensa(&S,1,0,S.size());
if (res > 0 ) cout << "YES" << endl; else cout << "NO" << endl;
}
プログラムの提出先