Solução CSharp: Problema da sopa de letras (versão cruzadinha)
From AdonaiMedrado.Pro.Br
Dificuldade 1
using System; namespace LaboratorioDeProgramacao2 { public class CruzadinhaD1 { private String Reverse(String s) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); for(int i = s.Length - 1; i >= 0; i--) sb.Append(s[i]); return sb.ToString(); } public int RetornarQuantidadeDePalavrasEncontradas( String[] cruzadinha, String[] palavras) { int retorno = 0; System.Text.StringBuilder sb; String horizontal, horizontalR, vertical, verticalR; sb = new System.Text.StringBuilder(); for(int i = 0; i < cruzadinha.Length; i++) { sb.Append(cruzadinha[i]); sb.Append(" "); } horizontal = sb.ToString(); horizontalR = Reverse(horizontal); sb = new System.Text.StringBuilder(); if (cruzadinha.Length > 0) for(int s = 0; s < cruzadinha[0].Length; s++) { for(int i = 0; i < cruzadinha.Length; i++) sb.Append(cruzadinha[i][s]); sb.Append(" "); } vertical = sb.ToString(); verticalR = Reverse(horizontal); for (int i = 0; i < palavras.Length; i++) if ( (horizontal.IndexOf(palavras[i])!=-1 || horizontalR.IndexOf(palavras[i])!=-1) && (vertical.IndexOf(palavras[i])!=-1 || verticalR.IndexOf(palavras[i])!=-1) ) retorno++; return retorno; } } }