Nombre Password [ Regístrate ]

Sopa de letras (OIE 5 - 2001) - Solución

 

Hay dos formas de enfocar el problema:

- Leer la sopa de letras como una matriz de caracteres e ir tomando para cada posición las ocho direcciones posibles e ir comparando cada palabra que empiece por esa letra.

- Leer cada fila, columna y diagonal como un string, y para cada una de ellas buscar dentro de esa cadena cada palabra (y también su palíndromo, dado que la palabra puede encontrarse "al revés"). En este caso la cantidad de comparaciones que se realizan es mucho menor que en la primera, aunque el código queda un poco menos legible. Los palíndromos se van hallando a la vez que se lee cada palabra. Las diagonales y columnas se obtienen después de leer el fichero de entrada. Así que sólo queda ir recorriendo una vez cada fila, columna y diagonal y buscando dentro de ellas cada palabra.

Ofrecemos la solución a ambas alternativas. Por un lado, la solución en lenguaje C resuelve el problema de la forma más directa (la primera); por otro, la solución en lenguaje Pascal utiliza el segundo enfoque.

Código

Código fuente en C

Código fuente en Pascal



© (2001-2008) ALGORITMIA.NET - Política de privacidad