Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/11/2013, 17:40
carlos12345678909
 
Fecha de Ingreso: octubre-2013
Ubicación: Valencia
Mensajes: 5
Antigüedad: 10 años, 7 meses
Puntos: 0
¿Alguien me puede ayudar con este ejercicio de programación en java?

Me gustaría saber si alguien me puede ayudar con este ejercicio de programacion
Palabras Cruzadas.

En el pasatiempo de palabras cruzadas, se dispone de una tabla de letras minúsculas NxN y el objetivo es encontrar palabras. Una palabra puede empezar en cualquier lugar en la tabla y puede ser construida utilizando letras adyacentes tanto en forma horizontal, vertical o diagonal.

Un ejemplo de una tabla 4x4 puede ser:

anap
siix
aopp
sxxx
Algunas de las palabras que aparecen son:

asas
ana
pios
Se pide construir un programa que permita tanto resolver manualmente un pasatiempo de palabras cruzadas como de forma automática. Las palabras que se buscarán no serán palabras de un diccionario sino simplemente palabras formadas por caracteres que estén en secuencia creciente respecto a su codificación en ASCII. El programa tendrá dos interfaces, uno a través de la entrada/salida estándar y el otro mediante un interfaz gráfico de usuario.

Interfaz entrada/salida estándar

Este será el interfaz por defecto y será llamado desde el método main de una clase Main del programa. No podrá haber ningún otro método main en ninguna otra clase. El objetivo del programa a través de este interfaz es resolver automáticamente un pasatiempo de palabras cruzadas como el descrito, encontrando todas las palabras diferentes válidas. Una palabra es válida si tiene de 3 a N2 letras todas ellas en orden estrictamente ascendente respecto a su codificación ASCII. Por ejemplo, "abc" es una palabra válida, "abcc" no y tampoco es legal "robar". Se debe tener en cuenta la eficiencia de la solución encontrada.

Entrada

La primera línea contendrá un número indicando el número de casos de test que siguen. A continuación irá una línea en blanco y también habrá una línea en blanco separando cada caso de test. Cada test contendrá un primer número N en una línea indicando el tamaño de la tabla. N podrá valer como mucho 20. Esa línea irá seguida de N líneas cada una de ellas con una cadena de N letras.

Salida

Para cada test la salida debe ser como se describe a continuación e ir separada con una línea en blanco, excluido el último caso de test. La salida de cada test estará formada por una lista de palabras únicas ordenadas de acuerdo a los siguientes criterios:

1. Las palabras más cortas van antes que las palabras más largas

2. Las palabras de igual longitud se ordenan lexicográficamente por su valor ASCII.

No se deben añadir blancos ni líneas extras. Si no hay palabras, no se imprimirá nada para ese test.

Ejemplo

Entrada

2

3

uno

dos

ves

4

abcd

bcda

cdab

dabc



Salida

deo
des
dev
dno
dns
dnu
dos
dou
dov
eos
eou
eov
nos
nou
nov
deos
deou
deov
dnos
dnou
dnov
abc
abd
acd
bcd
abcd

Mi duda es como plantear la función recursiva porque ya he intentado alguna pero no me sale .Espero que alguien me pueda ayudar!