質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Q&A

解決済

1回答

756閲覧

ABC049Cを正規表現を使って解きたい

退会済みユーザー

退会済みユーザー

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

0グッド

0クリップ

投稿2021/10/04 13:43

#問題
以下の問題に関して、教えて頂きたいです。
https://atcoder.jp/contests/abc049/tasks/arc065_a

#発生している事象
自分で入力を複数試す分には期待した動作をするが、提出すると全て不正解になる。

#期待した動作
dream dreamer erase eraser を"0"に置き換えた後、それ以外の文字が含まれていた場合は"1"に置き換える。置き換えた結果の文字列に1が含まれていればNo、0のみであればYesを出力する。

python

1S = input() # Sは英小文字からなる文字列 2 3import re 4S = S.replace("eraser", "0") 5S = S.replace("erase", "0") 6S = S.replace("dreamer", "0") 7S = S.replace("dream", "0") 8 9S = re.sub("[abcdefghijklmnopqrstuvwxyz]", "1", S) 10 11if "1" in S: 12 print("No") 13else: 14 print("Yes")

正規表現について理解が乏しいため、そこが不正解の原因かと思っているのですが、どんな細かい点でもご指摘頂けると嬉しいです。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

回答は、YESかNOなので、YesとかNoではダメだったのが原因でした。

以下の説明は勘違いでした。

python

1>>> S = 'eraserase' 2>>> import re 3>>> S = S.replace("eraser", "0") 4>>> S = S.replace("erase", "0") 5>>> S = S.replace("dreamer", "0") 6>>> S = S.replace("dream", "0") 7>>> 8>>> print(S) 90ase

となるからです。

投稿2021/10/04 13:59

編集2021/10/04 14:12
ppaul

総合スコア24666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/10/05 12:53

単なる問題の読み間違いで、お恥ずかしい限りです。大変失礼いたしました。 一旦回答した後も問題を読み返して気付いてくださったのですね。ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問