Genera un generatore di stringhe (array associativo costante)

1

C'è un insieme finito di stringhe univoche e uno spazio chiave limitato. Una chiave corrisponde a un valore di stringa e deve esistere una funzione per eseguire la risoluzione. Non è necessario supportare altri metodi di array associativo, ad eccezione della ricerca. Cercare una chiave senza valore porta a un comportamento indefinito.

Mi piacerebbe scoprire che è possibile (e lo si è ottenuto) risolvere l'attività generando codice di funzione di ricerca. Vale a dire per ogni chiave esistente ci sarebbe un percorso di codice univoco, che raccoglie il carattere della stringa di destinazione dopo il carattere. Ad esempio, per le stringhe "mate", "date" e "crate" il finale "ate" comune può essere risolto seguendo lo stesso percorso di codice.

Finora tutto il mio Google-fu non ha portato a nulla. Apprezzo qualsiasi suggerimento.

    
posta Roman Saveljev 22.05.2016 - 14:04
fonte

1 risposta

3

Quello che stai cercando si chiama funzione Perfect Hash . Se hai accesso a un sistema Linux probabilmente è già installato un programma chiamato gperf che, dato un insieme di le stringhe genereranno il codice C per tale funzione.

    
risposta data 22.05.2016 - 14:17
fonte

Leggi altre domande sui tag