Question : Vous avez un smartphone et vous avez ouvert l'application contact. Vous voulez rechercher un contact. Disons que manmohan
. mais vous ne vous souvenez pas de son nom complet. vous vous souvenez seulement mohan
Vous avez donc commencé à taper. Au moment où vous tapez m L'application contact commencera à chercher le contact qui a la lettre ' m Supposons que vous ayez enregistré des noms dans votre liste de contacts. ("manmohan", "manoj", "raghav","dinesh", "aman")
maintenant le contact va montrer manmohan,manoj and aman
en conséquence. Maintenant, le prochain caractère que vous tapez est ' o (jusqu'à présent, vous avez tapé " mo ") maintenant le résultat devrait être "man mo han". Comment implémenteriez-vous une telle structure de données ?
Mon approche consistait à appliquer KMP en recherchant le motif "m" puis "mo" dans tous les contacts disponibles, puis en affichant la chaîne qui correspond. Mais mon interlocuteur m'a dit que ce n'était pas efficace. (Je ne pouvais pas penser à une meilleure approche.) Avant de partir, il a dit qu'il y avait un algorithme qui aiderait. Si vous le connaissez, vous pouvez le résoudre. Je n'ai pas pu le faire. (Avant de partir, j'ai demandé quel était cet algorithme standard. L'interviewer a répondu : arbre de suffixes). Quelqu'un peut-il m'expliquer s'il vous plaît en quoi il est meilleur ? ou quel est le meilleur algorithme pour implémenter cette structure de données.