パターン・ファインダー
CoddyのRジャーニー「基礎」セクションの一部 — レッスン 77/78。
チャレンジ
簡単text と pattern の2つの引数を取る count_pattern という名前の関数を作成してください。この関数は、重なり合う出現回数を含め、テキスト内にパターンが出現する回数を返す必要があります。
2行の入力を受け取ります:
- 検索対象となるテキスト文字列
- 検索するパターン文字列
提供された入力を使用して関数を呼び出し、結果を出力してください。
ヒント:
- 文字列の長さを取得するには
nchar()を使用します - 部分文字列を抽出するには
substr(text, start, stop)を使用します - 有効な各開始位置を反復処理し、部分文字列がパターンと一致するかどうかを確認します
例えば、入力が以下の場合:
ababa
aba出力は以下のようになります:
2説明:パターン "aba" は位置1(ababa)と位置3(ababa)に出現するため、カウントは2になります。
入力が以下の場合:
mississippi
issi出力は以下のようになります:
2自分で試してみよう
# 入力を読み込む
con <- file("stdin", "r")
text <- suppressWarnings(readLines(con, n = 1))
pattern <- suppressWarnings(readLines(con, n = 1))
close(con)
# TODO: textとpatternを受け取るcount_patternという名前の関数を作成する
# そして、text内でのpatternの重複する出現回数を返す
# 関数を呼び出して結果を表示する
print(count_pattern(text, pattern))