次の記述中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 関数searchは、二つの文字型の配列を、それぞれ引数data及びkeyで受け取り、dataから、keyの要素の並びと同じ並びを全て探し、その先頭の要素番号を全て格納した配列を返す。見つからなければ、要素数0の配列を返す。 関数searchをsearch({"a", "b", "a", "b", "c", "a", "b", "c"}, {"a", "b", "c"})として呼び出すと、/* β */の行の条件式が真となる回数は 回である。

途中一致も真に数える。全比較の成功回数を数える

頻出基本情報技術者試験2025年度 公開問題 科目B4/アルゴリズムとプログラミング / 探索アルゴリズム

〔プログラム〕 /* keyは、要素数1以上の配列である */ ○整数型の配列: search(文字型の配列: data, 文字型の配列: key) 整数型: i, j, lenData, lenKey 整数型の配列: result ← {} // 要素数0の配列 lenData ← dataの要素数 lenKey ← keyの要素数 /* (lenData − lenKey + 1) が0以下のときは繰返し処理を実行しない */ for (i を 1 から (lenData − lenKey + 1) まで 1 ずつ増やす) for (j を 1 から lenKey まで 1 ずつ増やす) // α if (data[i + j − 1] が key[j] と等しい) /* β */ if (j が lenKey と等しい) resultの末尾 に iの値 を追加する endif else αの行から始まる繰返し処理を終了する endif endfor endfor return result

選択肢

正解と解説

正解: 8

外側のループはiを1から6まで動かし、内側で照合が一致するたびに条件式が真になる。i=1では2文字目まで一致して3文字目で外れるので真が2回、i=3とi=6ではkeyと完全に一致するので各3回ずつ真になる。i=2、4、5は1文字目で外れるため真にならず、合計は2+3+3で8回となる。

選択肢ごとの解説

出典:令和7年度 公開問題 基本情報技術者試験 科目B 問4(IPA)

同じ分野の他の問題

最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。