Confronto tra caratteri indipendenti dell'indice all'interno di blocchi di testo

6

Ho il seguente compito: sviluppare un programma in cui vi è un blocco di testo di esempio che dovrebbe essere digitato dall'utente. Tutti gli errori di battitura effettuati dall'utente durante il test sono registrati. Fondamentalmente, posso confrontare ogni char digitato con il char di esempio in base alla posizione dell'indice di caret dell'input, ma c'è un difetto significativo in un approccio così "ingenuo". Se l'utente ha digitato erroneamente più lettere di quante ne abbia un'intera stringa o ha inserito più spazi bianchi tra la stringa di quanto dovrebbe essere, il resto dei confronti sarà errato a causa degli offset di indice aggiunti dagli inserimenti errati aggiuntivi.

Ho pensato di progettare una sorta di parser in cui ogni stringa (o anche un char) è tokenizzata e i confronti sono fatti in "char-wise" e non in "index-wise", ma mi sembra un overkill per un simile compito Mi piacerebbe avere un riferimento ad algoritmi eventualmente esistenti che possono essere utili per risolvere questo tipo di problema.

    
posta Michael IV 02.03.2013 - 18:48
fonte

2 risposte

1

Sembra che ciò di cui hai bisogno sia equivalente a fare una "diff" su due file. Ci sono molti modi per farlo, ma guarderei la diff-match-patch algoritmo.

    
risposta data 03.03.2013 - 00:51
fonte
-3

Praticamente l'unico modo per farlo è utilizzare graft graft e quindi confrontare le loro versioni normalizzate.

    
risposta data 02.03.2013 - 18:49
fonte

Leggi altre domande sui tag