Είμαι έτοιμος να δημιουργήσει ένα «έξυπνο» λεξικό που θα μπορούσε να δημιουργήσει παρόμοιες λέξεις αν η λέξη από το χρήστη δεν υπάρχει στο λεξικό.
Το λεξικό ξεκινά με την ανάγνωση ενός αρχείου με τις λέξεις, η λέξη θα πρέπει να προστεθεί στο δυαδικό δέντρο και ένα πίνακα κατακερματισμού. Ο πίνακας κατακερματισμού χρησιμοποιείται για να καθοριστεί αν η λέξη ή παρόμοια λέξη στο λεξικό, ο πίνακας hash θα έχει μια Boolean αποτέλεσμα έτσι ώστε να μπορούμε γρήγορα δούμε αν το δυαδικό δένδρο αναζήτησης περιέχει τη λέξη. Ο πίνακας κατακερματισμού πρέπει να είναι περίπου δέκα φορές το μήκος του λεξικού μας, γιατί περιλαμβάνει επίσης παρόμοιες λέξεις στο πίνακα κατακερματισμού. Ως σχετικά νέος σε Java, θα ήθελα συμβουλές και προτάσεις για το πώς να κάνει μια συνάρτηση κατακερματισμού που θα ήταν ιδανικό για την περίπτωσή μου.
public String [] similarOne(String word) {
char [] word_array = word.toCharArray();
char [] tmp;
String [] words = new String[word_array.length-1];
for(int i = 0; i < word_array.length - 1; i++) {
tmp = word_array.clone();
words[i] = swap(i, i+1, tmp);
}
return words;
}
public String swap(int a, int b, char [] word) {
char tmp = word[a];
word[a] = word[b];
word[b] = tmp;
return new String(word);
}













