基本情報技術者過去問題 平成27年秋期 午後問8 解説

問題文は他のサイトを別ウインドウで開いてご覧ください。

設問2から引数を作ります。

Text [1~16] TextLen
A B C X B B A C A B A C A D E C 16

Pat [1~4] PatLen
A B A C 4


スキップ数の設定

最初のループで26文字すべてのスキップ数を4に設定します。
Skip [1~26]
4 4 4 4 4 4 4 4 4 4 4 4 4
4 4 4 4 4 4 4 4 4 4 4 4 4

2番目のループは3回繰り返します。
Skip [1~26]
4 4 4 4 4 4 4 4 4 4 4 4 4
4 4 4 4 4 4 4 4 4 4 4 4 4
3 4 4 4 4 4 4 4 4 4 4 4 4
4 4 4 4 4 4 4 4 4 4 4 4 4
3 2 4 4 4 4 4 4 4 4 4 4 4
4 4 4 4 4 4 4 4 4 4 4 4 4
1 2 4 4 4 4 4 4 4 4 4 4 4
4 4 4 4 4 4 4 4 4 4 4 4 4


3つ目のループ(検索部分)

PLast = 4
PText PPat
4 4
Textの4文字目とPatの4文字目を比べ、違う文字なので内側のループには入らず、Textの4文字目「X」に対応するステップ数「4」をPLastに加えます。

PLast = 8
PText PPat
8 4
7 3
6 2
5 1
3文字一致しましたが、Textの5文字目とPatの1文字目が違う文字なので内側のループを抜け、Textの8文字目「C」に対応するステップ数「4」をPLastに加えます。

PLast = 12
PText PPat
12 4
11 3
10 2
9 1
4文字とも一致したのでPText = 9 を返します。
検索結果は9文字目です。


ホームに戻るボタン↓