2016-10-05 1 views

Antwort

1

Sie können eine trie verwenden.

  1. Erstellen Sie einen leeren Trie.

  2. Schleife über alle Zeichenfolgen, und legen Sie sie darin.

  3. Iterieren Sie alle Werte des Trie in der Reihenfolge und geben Sie sie aus (siehe Trie complexity and searching, wie unten von Jean-Baptiste Yunès vorgeschlagen).

Die Komplexität von 1 ist konstant. Die Komplexität von 2 und 3 ist O (dn).

+0

3. Punkt ist nicht klar. Wie stellen Sie sicher, dass die Strings sortiert sind? –

+0

@SauravSahu Es ist eine ziemlich einfache rekursive Funktion (siehe [hier] (http://stackoverflow.com/questions/13685687/how-to-print-all-words-in-a- trie) eine Implementierung). Beginnen Sie am Knoten, und besuchen Sie rekursiv alle untergeordneten Elemente, während Sie das aktuelle Präfix verfolgen. Wenn Sie ein Blatt treffen, geben Sie die gesamte Zeichenfolge entlang des Pfads aus. –

+0

Ergänzung: http://stackoverflow.com/questions/13032116/trie-complexity-and-searching –

Verwandte Themen