Menu
CoddyTech

パターンを見つけよう

CoddyのGDScriptジャーニー「基礎」セクションの一部。レッスン 91/92。

challenge icon

チャレンジ

中級

find_occurrences 関数を _ready() の上に記述してください。この関数は次の処理を行います。

  1. 2つの文字列 text と pattern を受け取る
  2. 重複する出現も含め、text 内に pattern が何回出現するかを数える
  3. 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オンラインコンパイラ