Difference between revisions of "Solução CSharp: Problema da sopa de letras (versão cruzadinha)"

From AdonaiMedrado.Pro.Br
Jump to: navigation, search
(New page: == Dificuldade 1 == <code lang="csharp"> using System; namespace LaboratorioDeProgramacao2 { public class CruzadinhaD1 { private String Reverse(String s) { System.Text.StringBuil...)
(No difference)

Revision as of 05:39, 9 October 2008

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;
		}				
	}
}