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.

questionAnswers(3)

yourAnswerToTheQuestion