Este problema se puede resolver fácilmente lanzándolo en una forma gráfica teórica. En particular, podemos reducir esto para verificar si un gráfico tiene una ruta euleriana .
Considere un gráfico dirigido con caracteres como vértices. Cada cadena corresponde a una arista desde el primer carácter hasta el último. Una cadena es equivalente a una ruta euleriana en el gráfico. Por ejemplo, considere la lista de palabras que forman una cadena “perro”, “arma”, “cerca”, “barra”, “cubierta”. Esto corresponde a la ruta dirigida d → g → n → r → d → k.
Un gráfico dirigido tiene una ruta euleriana si:
- ¿Cuáles son algunas aplicaciones divertidas o divertidas que se pueden desarrollar utilizando subprocesos múltiples en Java?
- ¿Qué preguntas puedo esperar recibir en una entrevista sobre Linux?
- ¿Qué debo esperar en la entrevista técnica para .NET en Skype de Microsoft Redmond?
- ¿Cuál es el mejor libro para preparar entrevistas de programación / codificación?
- ¿Qué se siente al fallar 15 entrevistas de programación?
- Todos los vértices deben tener los mismos grados de entrada y salida, o debe haber exactamente un vértice con entrada = salida + 1 y uno con salida = entrada + 1
- Y, todos los vértices que tienen un grado de entrada o salida diferente de cero deben formar un componente conectado.
Por lo tanto, verificar si existe una cadena se puede hacer muy rápidamente, en tiempo O (N). En realidad, generar la cadena es más trabajo, pero los algoritmos para hacerlo se describen en la página wiki.