問題文は他のサイトを別ウインドウで開いてご覧ください。
最初のループで26文字すべてのスキップ数を4に設定します。
2番目のループは3回繰り返します。
PLast = 4
Textの4文字目とPatの4文字目を比べ、違う文字なので内側のループには入らず、Textの4文字目「X」に対応するステップ数「4」をPLastに加えます。
PLast = 8
3文字一致しましたが、Textの5文字目とPatの1文字目が違う文字なので内側のループを抜け、Textの8文字目「C」に対応するステップ数「4」をPLastに加えます。
PLast = 12
4文字とも一致したのでPText = 9 を返します。
検索結果は9文字目です。
設問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 |
PLast = 8
PText | PPat |
---|---|
8 | 4 |
7 | 3 |
6 | 2 |
5 | 1 |
PLast = 12
PText | PPat |
---|---|
12 | 4 |
11 | 3 |
10 | 2 |
9 | 1 |
検索結果は9文字目です。
ホームに戻るボタン↓