V'è un compito di costruire una sorta di dizionario per lista di suffissi, per un'istanza:memoria di ricerca efficace nella lista suffisso
[., .com., a.com., a.b.com., org., some.org., ...]
e per ogni stringa in entrata, per un'istanza "test.some .org." trova il suffisso più lungo nel dizionario costruito. Ci sono alcuni limiti di memoria. Qual è l'algoritmo/struttura dati più adatto per questo caso?
La scelta più ovvia per me è un trie per stringhe invertite, ma sembra consumare molta memoria. Ho provato ad usare array suffisso ma sembra che non si adatti all'operazione.
Il dizionario è immutabile, deve essere costruito una volta. Le rappresentazioni più efficienti in termini di memoria di prove immutabili?
Vorrei suggerire di dare un'occhiata alla radix tree http://en.wikipedia.org/wiki/Radix_tree – Regenschein