問題文は他のサイトを別ウインドウで開いてご覧ください。
  
  
最初のループで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文字目です。
ホームに戻るボタン↓