¡Corrígeme si me equivoco, pero parece que necesitas un algoritmo de coincidencia de cadenas (patrones)! Esta clase de algoritmos busca un patrón (un término de búsqueda) en un cuerpo de texto más grande. En su caso, el cuerpo del texto es cada palabra individual en su lista, o una sola cadena compuesta de palabras concatenadas de su lista. En cualquier caso, puede transformar las siguientes soluciones para que coincida con su problema.
Hay muchos algoritmos aplicables que se aplican a este problema, pero si está buscando comprensión, puede construir sobre dos de mis algoritmos de coincidencia de cadenas favoritos: el algoritmo de Horspool o el algoritmo Rabin-Karp .
Ambos resuelven este problema y son relativamente fáciles de entender después de algún estudio. Hay muchos recursos en línea maravillosos para ayudarlo con estos algoritmos, por lo que no intentaré explicarlos aquí.
- ¿Cómo empiezo a aprender o fortalecer mi conocimiento de las estructuras de datos y algoritmos?
- ¿Qué nivel / conocimiento de programación debería tener para obtener el máximo provecho de CLRS? [Más detalles en mi respuesta contraída]
- ¿Es el algoritmo de búsqueda de Google realmente el mejor?
- ¿Debo aprender a clasificar?
- ¿De qué se trata el algoritmo Google Hawk?
¡La mejor de las suertes!