Problema da sopa de letras (versão cruzadinha)
Versão cruzadinha inspirada em http://www.topcoder.com/stat?c=problem_statement&pm=9821&rd=13526
Contents
Dificuldade 1
Considere o problema da sopa de letras, mas desta vez trabalhe com orientação a objeto e ao invés de receber um vetor assuma que receberá uma matriz de letras (vetor de strings). Desta forma, você deverá fazer uma classe em C++, Java ou C# com um método público de nome RetornarQuantidadeDePalavrasEncontradas que receberá dois vetores de string como parâmetro. O primeiro constituirá a matriz da sopa de letras, o segundo as palavras que devem ser encontradas. Este método deve retornar o número de palavras encontradas.
Assuma como regra que uma palavra só será considerada encontrada se for possível localizá-la na vertical (de cima para baixo ou de baixo para cima) e na horizontal (da esquerda para direita ou da direita para esquerda).
Observe que nesta primeira dificuldade dizer que uma palavra foi encontrada significa dizer que ela foi localizada, ou seja, que suas letras foram encontradas em uma seqüência sucessiva na vertical (de cima para baixo ou de baixo para cima) e na horizontal (da esquerda para direita ou da direita para esquerda)
Exemplo 1
Parâmetros
{"abc", "cab" "cba" } { "abc", "cab"}
Retorno
1
Dificuldade 2
Considere o mesmo problema anteriormente descrito só que desta vez uma palavra será considerada encontrada se ela puder ser formada pelas letras existentes em no mínimo uma mesma linha e uma mesma coluna.
Exemplo 1
Parâmetros
{"abc", "cab" "cba" } { "abc", "cab"}
Retorno
2