Wyszukaj ciąg podczas wpisywania znaku
Mam kontakty zapisane w telefonie komórkowym. Powiedzmy, że moje kontakty są
Ram
Hello
Hi
Feat
Eat
At
Kiedy piszę list'A'
Powinienem otrzymać wszystkie pasujące kontakty"Ram, Feat, Eat, At"
.
Teraz wpisuję jeszcze jedną literęT
. Teraz mój całkowity ciąg jest"AT"
teraz mój program powinien ponownie wykorzystać wyniki poprzedniego wyszukiwania"A"
. Teraz powinien mnie zwrócić"Feat, Eat, At"
Zaprojektuj i opracuj program do tego.
To pytanie z wywiadu na temat rozwoju mobilnego Samsunga
Próbowałem rozwiązaćTrie data structures
. Nie można uzyskać dobrego rozwiązania do ponownego użycia już wyszukanych wyników łańcuchów. Spróbowałem również rozwiązania ze słownikową strukturą danych, rozwiązanie ma taką samą wadę jakTrie
.
pytanie brzmi: jak wyszukać kontakty dla każdej wpisanej litery, ponownie wykorzystując wyniki wyszukiwania wcześniej wyszukanego ciągu? Jaką strukturę danych i algorytm należy wykorzystać do skutecznego rozwiązania problemu.
Nie proszę o program. Język programowania jest dla mnie nieistotny.
Maszyna państwowa wydaje się być dobrym rozwiązaniem. Czy ktoś ma sugestię?
Rozwiązanie powinno być wystarczająco szybkie dla milionów kontaktów.