初めてのAtCoderで分からなくなりました
解決したいこと
AtCoderを初めてとりあえずAtCoder Beginner Selectionを解いているのですが解けなくて困っています。解けない問題は「ABC049C 白昼夢」です。言語はPython3を使用しています。
発生している問題・エラー
Runtime Error が発生しています。AtCoderの使い方が分かっていないのか、詳細なエラー内容が取得出来ていません。
以下、AtCoderの問題となります。
問題文
英小文字からなる文字列 S が与えられます。 Tが空文字列である状態から始め、以下の操作を好きな回数繰り返すことで S=T とすることができるか判定してください。
T の末尾に dream dreamer erase eraser のいずれかを追加する。
制約
1≦∣S∣≦10
5
S は英小文字からなる。
該当するソースコード
S=input()
result=[]
def str_find(S):
global result
if S.find("dreamer")==0:
str_find(S[7::])
if S.find("dream")==0:
str_find(S[5::])
if S.find("eraser")==0:
str_find(S[6::])
elif S.find("erase")==0:
str_find(S[5::])
if len(S)>0:
result.append("NO")
return 0
else:
result.append("YES")
return 0
str_find(S)
if "YES" in result:
print("YES")
else:
print("NO")
自分で試したこと
他の方が書かれた回答例を使用した所ACでした。また、入力例(S=erasedream,dreameraser,dreamerer)として示されている3パターンに対してはACとなっています。アルゴリズムが悪い、汚いことは分かっていますが今後の為にもなぜ問題が発生しているのかが知りたくて質問させていただきました。
0