アルゴリズム: 英単語の接頭辞マッチング - ハッシュ テーブル

トピック

数十万の英単語を収めた英単語ライブラリ(配列)を与え、文字列を入力して、それが特定の単語の接頭辞であるかどうかを判定(または間違っているかどうかを判定)します。

一般的な考え

単語ライブラリを走査し、indexOf を使用して接頭辞を判断します。

時間計算量は O(n) を超えるため、indexOf の計算量を考慮する必要があります。

ハッシュテーブルのアイデア

ハッシュ テーブルは、次のような任意の言語で実装できる論理構造です。

  • jsでオブジェクトまたはマップを使用する
  • C言語での構造
  • Javaのハッシュマップ

ハッシュ テーブルはキーによってクエリされ、時間計算量は O(1) です。

const obj = {
    
    
	a: {
    
    
		a: {
    
    

		},
		b: {
    
    
			
		},
		...
	},
	b: {
    
    

	},
	...
}

時間計算量は O(m) になります。ここで、m は単語の長さを表します。ただし、その代償として、英単語をそのようなハッシュ テーブルに変換する必要があり、ハッシュ テーブルを頻繁に移動する必要がないため、大きな問題はありません。

おすすめ

転載: blog.csdn.net/weixin_43972437/article/details/130449194