文字列のセットの最短の一意のプレフィックスを計算する方法は?

Asgeir S. Nilsen:

これは、コマンドライン解析でかなり一般的なアルゴリズムです。事前定義された長いオプション名のセットが与えられた場合-これらのオプションの1つを一意に識別する最短のプレフィックスを計算します。たとえば、次のオプションの場合:

-help
-hostname
-portnumber
-name
-polymorphic

これは出力になります:

-he
-ho
-por
-n
-pol

私はこれを行うための2つの可能な方法を考えています-ツリーとしてのどちらか:

               *
             / | \
            /  |  \
           H   N   P
          / \      |
         E   O     O
                  / \
                 R   L

または、部分文字列を検索して:

for (String s : strings) {
   for (int i = 1; i < s.length(); s++) {
      if (search(strings,s.substring(0,i)) == 1) {
          result.add(s.substring(0,i);
          break;
      }
   }
}

だから、質問は:

  1. どちらにしますか?
  2. 明らかな3番目の方法がないのですか?
マークピーターズ:

「ツリー」ソリューションは、パトリシアトライの特別なケースです(まあ、実際にはかなり一般的です)

最初の方法は、一般的に検索が高速です。メモリの考慮事項は、永続的に使用されるわけではなく、「ルックアップ」を1回だけ実行するため、おそらくコンテキストには関係ありません。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Hive SQL:プレフィックスで一意の文字列をカウントする方法

分類Dev

リストの列内の一意の文字列ごとに一意の番号をマップするための最も計算効率の高い方法

分類Dev

文字列内の文字の頻度のプレフィックス合計を効率的に計算する方法は?

分類Dev

セット内の一意の順列を効率的に計算する

分類Dev

プレフィックス行の平均を計算して、パンダの新しい列にする方法は?

分類Dev

一意にソートされた空白以外の文字列を保持するJavaコレクション、セット、マップ、または配列

分類Dev

一意にソートされた空白以外の文字列を保持するJavaコレクション、セット、マップ、または配列

分類Dev

さまざまなメトリックについて、一意の変数名で変数を合計する-変数名のプレフィックスの前後に一意の名前を見つける必要があります

分類Dev

プレフィックスがRubyのセット内の文字列と一致するかどうかを確認する方法は?

分類Dev

いくつかのアイテムを含むリストのセットの合計一意の順列を計算するアルゴリズム

分類Dev

argparseおよびoptparseの一意のプレフィックスの一致を無効にする

分類Dev

Googleスプレッドシートは、文字列の後に一意の値を一覧表示します

分類Dev

Googleスプレッドシート:複数の一意の基準を合計する方法

分類Dev

レトロフィットで一意のデータを取得する方法

分類Dev

NSDictionary 内の文字列のプレフィックスを確認する方法は?

分類Dev

プリセットの一意のクラスオブジェクトを作成する方法

分類Dev

プレフィックス付きの一意のIDを生成するRコード?

分類Dev

セットに一意のフィールドを持つオブジェクトを追加する方法

分類Dev

Googleスプレッドシート-一意の文字列によるルックアップ

分類Dev

ロボット フレームワークで一意の文字列を作成する

分類Dev

複数行の文字列にプレフィックスを追加する方法は?

分類Dev

Java、文字列内の一意の文字間の差を計算する

分類Dev

Laravelの雄弁な結果セットで非プライマリ列を一意にする方法は?

分類Dev

Pythonが一意のリスト順列の可能性を計算する

分類Dev

Rの列内の一意の値でデータフレームをサブセット化する

分類Dev

特定の位置にあるテキスト内の最短の一意の文字列を検索します

分類Dev

配列内の一意のシーケンスを取得する最短の方法

分類Dev

文字列内の一意の文字のみを返すGoogleスプレッドシートの関数はありますか?

分類Dev

Pythonで一意の文字列を整数にマップする

Related 関連記事

  1. 1

    Hive SQL:プレフィックスで一意の文字列をカウントする方法

  2. 2

    リストの列内の一意の文字列ごとに一意の番号をマップするための最も計算効率の高い方法

  3. 3

    文字列内の文字の頻度のプレフィックス合計を効率的に計算する方法は?

  4. 4

    セット内の一意の順列を効率的に計算する

  5. 5

    プレフィックス行の平均を計算して、パンダの新しい列にする方法は?

  6. 6

    一意にソートされた空白以外の文字列を保持するJavaコレクション、セット、マップ、または配列

  7. 7

    一意にソートされた空白以外の文字列を保持するJavaコレクション、セット、マップ、または配列

  8. 8

    さまざまなメトリックについて、一意の変数名で変数を合計する-変数名のプレフィックスの前後に一意の名前を見つける必要があります

  9. 9

    プレフィックスがRubyのセット内の文字列と一致するかどうかを確認する方法は?

  10. 10

    いくつかのアイテムを含むリストのセットの合計一意の順列を計算するアルゴリズム

  11. 11

    argparseおよびoptparseの一意のプレフィックスの一致を無効にする

  12. 12

    Googleスプレッドシートは、文字列の後に一意の値を一覧表示します

  13. 13

    Googleスプレッドシート:複数の一意の基準を合計する方法

  14. 14

    レトロフィットで一意のデータを取得する方法

  15. 15

    NSDictionary 内の文字列のプレフィックスを確認する方法は?

  16. 16

    プリセットの一意のクラスオブジェクトを作成する方法

  17. 17

    プレフィックス付きの一意のIDを生成するRコード?

  18. 18

    セットに一意のフィールドを持つオブジェクトを追加する方法

  19. 19

    Googleスプレッドシート-一意の文字列によるルックアップ

  20. 20

    ロボット フレームワークで一意の文字列を作成する

  21. 21

    複数行の文字列にプレフィックスを追加する方法は?

  22. 22

    Java、文字列内の一意の文字間の差を計算する

  23. 23

    Laravelの雄弁な結果セットで非プライマリ列を一意にする方法は?

  24. 24

    Pythonが一意のリスト順列の可能性を計算する

  25. 25

    Rの列内の一意の値でデータフレームをサブセット化する

  26. 26

    特定の位置にあるテキスト内の最短の一意の文字列を検索します

  27. 27

    配列内の一意のシーケンスを取得する最短の方法

  28. 28

    文字列内の一意の文字のみを返すGoogleスプレッドシートの関数はありますか?

  29. 29

    Pythonで一意の文字列を整数にマップする

ホットタグ

アーカイブ