パターンを見つけよう
CoddyのGDScriptジャーニー「基礎」セクションの一部。レッスン 91/92。
チャレンジ
中級find_occurrences 関数を _ready() の上に記述してください。この関数は次の処理を行います。
- 2つの文字列
textとpatternを受け取る - 重複する出現も含め、
text内にpatternが何回出現するかを数える - 3つの要素を含む配列を返す
- パターンが見つかった場合は
true、それ以外の場合はfalse - 出現回数
- 各出現箇所の開始位置を含む配列
- パターンが見つかった場合は
たとえば、text が "abababab" で、pattern が "aba" の場合、"aba" は位置 0、2、4 から始まるため、関数は [true, 3, [0, 2, 4]] を返します。
パターンが見つからない場合は、[false, 0, []] を返してください。
用意されている _ready() は2つの文字列を読み込み、関数を呼び出して結果を出力します。pass を関数の本体に置き換えてください。
自分で試してみよう
extends Node
func find_occurrences(text, pattern):
# ここにコードを書いてください
pass
func _ready():
var text := OS.read_string_from_stdin()
var pattern := OS.read_string_from_stdin()
# 関数を呼び出して結果を出力してください
var result = find_occurrences(text, pattern)
print(result)
基礎のすべてのレッスン
自分で練習してみよう: GDScriptオンラインコンパイラ