Estoy buscando la manera más eficiente de almacenar cadenas binarias en una estructura de datos (función de inserción) y luego al obtener una cadena, quiero verificar si hay alguna cadena cíclica de la cadena dada en mi estructura.Buscar cadenas cíclicas
Pensé en almacenar las cadenas de entrada en un Trie pero luego cuando intenté determinar si alguna cadena cíclica de la cadena que obtuve ahora estaba insertada en el Trie significa hacer | s | busca en el Trie todas las cadenas cíclicas posibles.
¿Hay alguna manera de hacerlo de manera más eficiente mientras que la complejidad del lugar será como en un Trie?
Nota: Cuando digo cadenas cíclicas de una cadena quiero decir que, por ejemplo, todas las cadenas cíclicas de 1011
son: 0111, 1110, 1101, 1011
Si esto es para un alfabeto de más de esos dos caracteres, yo diría crear una función hash que genere el mismo resultado independientemente del orden de los valores de los caracteres, para que pueda eliminar rápidamente la mayoría de los que no coinciden. –
@ C.Evenhuis: No, estoy trabajando solo con cadenas binarias. – user550413
¿Haces todas las inserciones por adelantado? ¿O entremezclas inserciones y búsquedas? – templatetypedef