Tôi có một bộ sưu tập các chuỗi con
"this" "is" "a" "antelope"
Tôi cần xem xét bất kỳ chuỗi đã cho nào và trả lời câu hỏi "Có bất kỳ chuỗi con nào trong chuỗi này không"
Vì vậy, chuỗi đầu vào của tôi có thể là
"issue"
Đây sẽ là một kết quả khớp vì "là" là một chuỗi con của "vấn đề"
Cú đâm đầu tiên của tôi vào lúc này, tôi đã biến không chính xác bộ sưu tập các chuỗi con của mình thành một trie. Điều đó đã đưa tôi đến nơi nhanh chóng khi nó trả lời ngược lại "là chuỗi đầu vào một chuỗi con của bộ sưu tập đã cho".
Có một số thuật toán hoặc cấu trúc dữ liệu tôi có thể chuyển đổi bộ sưu tập của mình thành để trả lời hiệu quả câu hỏi này không? Ý tôi là, tôi có thể thực hiện phương pháp "kiểm tra đầu vào đối với mọi chuỗi con" đơn giản, nhưng có vẻ như có một cách tốt hơn.
Trong ví dụ đã cho của tôi, tôi hy vọng rằng "linh dương" sẽ không bao giờ được kiểm tra vì "a" bao gồm mọi trường hợp mà linh dương sẽ làm. Tôi thậm chí có thể mong đợi rằng "là" sẽ loại bỏ "điều này" vì mọi trường hợp "điều này" sẽ tìm thấy một trận đấu "là" cũng sẽ như vậy. Vì vậy, có vẻ như loại bỏ các chuỗi con dài hơn với các chuỗi ngắn hơn sẽ mang lại hiệu suất tốt hơn.
Tôi đang lan man ... Bất cứ điều gì tôi nên xem xét?