パターン・ファインダー
CoddyのPythonジャーニー「Fundamentals」セクションの一部 — レッスン 76/77。
チャレンジ
中級find_occurrences という名前の関数を作成してください。この関数は以下の処理を行います:
- 2つの文字列引数
textとpatternを受け取ります。 - 重複する出現を含め、
text内にpatternが何回出現するかをカウントします。 - 以下の内容を含むタプルを返します:
- パターンが見つかったかどうかを示すブール値 (True/False)
- パターンの出現回数
- パターンが見つかった開始位置のリスト
例えば、text が "abababab" で pattern が "aba" の場合、"aba" は位置 0、2、4 に出現するため、関数は (True, 3, [0, 2, 4]) を返す必要があります。
パターンが見つからない場合は、(False, 0, []) を返します。
pass キーワードについて: デフォルトのコードに pass が含まれています。これは「何もしない」ことを意味する Python のキーワードで、関数内などのインデントされたコードブロックが必要な場所でプレースホルダーとして使用されます。pass を実際の関数のコードに置き換えてください。
自分で試してみよう
def find_occurrences(text, pattern):
# ここにコードを書いてください
pass
# 入力を読み込む
text = input()
pattern = input()
# 関数を呼び出して結果を表示する
result = find_occurrences(text, pattern)
print(result)