接頭辞によって文字列を分割するアルゴリズム

xrfang:

文字列L(ソート済み)のリストと正の整数N(N <= len(L))が与えられた場合、長さNの共通接頭辞によってLを効率的にN以下のグループに分割する方法は?

例:データ構造と機能を次のように定義します。

type PrefixGroup struct {
    Prefix string 
    Count  int
}
func partition(L []string, N int, prefix string) []PrefixGroup

リストLに何千もの文字列を含めることができます。

partition(L, 8, "")

出力は次のようになります。

[
    {"Prefix":"13", "Count":1000},
    {"Prefix":"180": "Count": 10},
    {"Prefix":"X": "Count": 2},
    ... ...
]

つまり、Lには、「13」で始まる1000個のストリング、「180」で始まる10個のストリング、および「X」で始まる2個のストリングがあることを意味します。プレフィックスの長さは固定されていないことに注意してくださいこのアルゴリズムの重要な要件は、共通のプレフィックスで文字列をパーティション分割して、グループの数をNと同じかそれより多くしないようにすることです。

上記の結果で、次に呼び出しpartition(L, 8, "13")て、「13」で始まるLのサブセットをさらにドリルダウンできます

[
    {"Prefix":"131", "Count": 50},
    {"Prefix":"135": "Count": 100},
    {"Prefix":"136": "Count": 500},
    ... ...
]

これは宿題ではありません私は手元のプロジェクトのためにそのようなアルゴリズムを書く必要があります。私はそれを「力ずく」で書くことができます。証明された時間/空間効率を達成するための古典的/よく知られたデータ構造やアルゴリズムがあるかどうかだけです。

私は考えましたがtrie、それはあまりにも多くのメモリを消費するのではないかと思います...

パベル・ニコロフ:

基数トライを使用する必要がありますトライと基数トライの違いについて読むことができます

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

例によってLocalOutlinerFactorアルゴリズムを理解する

分類Dev

アルゴリズム:文字列を3つの部分文字列に最適に分割する

分類Dev

どのように私の接頭辞マッチングアルゴリズムのためのより良いアルゴリズムを見つけるために

分類Dev

Java 8ストリームは、接頭辞によってログファイルを連結します

分類Dev

文字列を動的な文字数にハッシュするアルゴリズム

分類Dev

文字列のリスト内の部分文字列に対してより効率的なPythonアルゴリズムを実装する

分類Dev

指定された文字列の文字のすべての組み合わせを辞書式順序で印刷するアルゴリズム

分類Dev

挿入アルゴリズムを使用して、ある配列から別の配列の「先頭」にオブジェクトをコピーします

分類Dev

10進数の文字列をBCDに変換するアルゴリズム

分類Dev

文字列アルゴリズムを構築する

分類Dev

文字列を「短縮」するためのアルゴリズム?

分類Dev

文字列を位置によってセル配列に分割する

分類Dev

JavascriptでDESアルゴリズムを使用して文字列を暗号化するにはどうすればよいですか?

分類Dev

sha512アルゴリズムでJavaScriptを使用して文字列をハッシュするにはどうすればよいですか

分類Dev

JavascriptでAES-128-CBCアルゴリズムを使用して文字列を暗号化するにはどうすればよいですか?

分類Dev

リストをグループに分割するアルゴリズム

分類Dev

パンダシリーズの末尾の文字-記号の接尾辞を接頭辞にする方法は?

分類Dev

その配列に有効な要素のセットに基づいてリストを配列に分割するアルゴリズム

分類Dev

どのように接頭辞と接尾辞でkotlinを文字列にリスト<string>を変換します

分類Dev

3 * K配列をK個の等しいサブ配列アルゴリズムに分割する

分類Dev

接尾辞配列アルゴリズム

分類Dev

配列をサブ配列に分割するアルゴリズム。すべてのサブ配列の最大合計が可能な限り低くなります。

分類Dev

正規表現を使用して、接頭辞と接尾辞がわかっている文字列から部分文字列を抽出するにはどうすればよいですか?

分類Dev

文字列に一意の文字がすべて含まれているかどうかを判断するアルゴリズムを Scala に実装する

分類Dev

時間を減少する部分に分割するJavaアルゴリズム

分類Dev

アンカー分割にロイドのアルゴリズムを使用する

分類Dev

条件によって文字列の単語から接尾辞を削除する

分類Dev

辞書のキーへの値の割り当てを逆にする方法は?アルゴリズムを解く

分類Dev

文字列の配列からすべてのタプルを一覧表示するアルゴリズム

Related 関連記事

  1. 1

    例によってLocalOutlinerFactorアルゴリズムを理解する

  2. 2

    アルゴリズム:文字列を3つの部分文字列に最適に分割する

  3. 3

    どのように私の接頭辞マッチングアルゴリズムのためのより良いアルゴリズムを見つけるために

  4. 4

    Java 8ストリームは、接頭辞によってログファイルを連結します

  5. 5

    文字列を動的な文字数にハッシュするアルゴリズム

  6. 6

    文字列のリスト内の部分文字列に対してより効率的なPythonアルゴリズムを実装する

  7. 7

    指定された文字列の文字のすべての組み合わせを辞書式順序で印刷するアルゴリズム

  8. 8

    挿入アルゴリズムを使用して、ある配列から別の配列の「先頭」にオブジェクトをコピーします

  9. 9

    10進数の文字列をBCDに変換するアルゴリズム

  10. 10

    文字列アルゴリズムを構築する

  11. 11

    文字列を「短縮」するためのアルゴリズム?

  12. 12

    文字列を位置によってセル配列に分割する

  13. 13

    JavascriptでDESアルゴリズムを使用して文字列を暗号化するにはどうすればよいですか?

  14. 14

    sha512アルゴリズムでJavaScriptを使用して文字列をハッシュするにはどうすればよいですか

  15. 15

    JavascriptでAES-128-CBCアルゴリズムを使用して文字列を暗号化するにはどうすればよいですか?

  16. 16

    リストをグループに分割するアルゴリズム

  17. 17

    パンダシリーズの末尾の文字-記号の接尾辞を接頭辞にする方法は?

  18. 18

    その配列に有効な要素のセットに基づいてリストを配列に分割するアルゴリズム

  19. 19

    どのように接頭辞と接尾辞でkotlinを文字列にリスト<string>を変換します

  20. 20

    3 * K配列をK個の等しいサブ配列アルゴリズムに分割する

  21. 21

    接尾辞配列アルゴリズム

  22. 22

    配列をサブ配列に分割するアルゴリズム。すべてのサブ配列の最大合計が可能な限り低くなります。

  23. 23

    正規表現を使用して、接頭辞と接尾辞がわかっている文字列から部分文字列を抽出するにはどうすればよいですか?

  24. 24

    文字列に一意の文字がすべて含まれているかどうかを判断するアルゴリズムを Scala に実装する

  25. 25

    時間を減少する部分に分割するJavaアルゴリズム

  26. 26

    アンカー分割にロイドのアルゴリズムを使用する

  27. 27

    条件によって文字列の単語から接尾辞を削除する

  28. 28

    辞書のキーへの値の割り当てを逆にする方法は?アルゴリズムを解く

  29. 29

    文字列の配列からすべてのタプルを一覧表示するアルゴリズム

ホットタグ

アーカイブ