Index | Alphabet | Remainder |
0 |
ssha |
|
1 | ssya | |
2 | ltu | しゃ |
3 | xtu | しゃ |
4 | ltsu | しゃ |
5 | xtsu | しゃ |
6 | ssi | ゃ |
7 | sshi | ゃ |
8 | cci | ゃ |
「l」をタイプ
Index | Alphabet | Remainder |
2 |
tu | しゃ |
4 |
tsu | しゃ |
前回と同様に「l」をタイプすることで
Alphabetの先頭文字が「l」のパターンだけ抽出されます。
抽出後、Alphabetは先頭文字(l)が削除された状態になります。
続けて「t」、「u」とタイプすると以下の状態になります。
Index | Alphabet | Remainder |
2 |
しゃ |
Alphabetが空になったパターンが発生したので、
入力成功となります。
ただし、「っしゃ」をタイプするパターンとして
「ltu」とタイプしたので、残りの「しゃ」を処理する必要があります。
残りの文字はRemainderに設定されてるので、
タイプ成功後、Remainderを処理すればいいわけです。
続けて入力パターンの様子を見ていきましょう。
次は「しゃ」なので新しいパターン一覧を取得します。
(「しゃ」のパターン一覧は前回を参照)
初期パターン
Index | Alphabet | Remainder |
0 |
sya |
|
1 | sha | |
2 | si | ゃ |
3 | shi | ゃ |
4 | ci | ゃ |
「si」をタイプ
Index | Alphabet | Remainder |
2 | ゃ |
Remainder「ゃ」のパターン一覧を取得。
初期パターン
Index | Alphabet | Remainder |
0 |
lya |
|
1 | xya |
「lya」をタイプして入力完了です。
この様に大抵の入力パターンは今までに説明した
データ構造と処理を利用すれば対応できます。
が、実はこのままじゃ対応できないパターンが存在します。
「ん」を含むパターンです。
タイピングアルゴリズムのラスボスです(^^;)
現時点で、自分も美しい方法では倒せていません。
次回以降で「ん」の処理をする上で問題になる点と、
今までのデータ構造と処理を応用して対応する方法を解説します。
2010.10.05