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

From AdonaiMedrado.Pro.Br
Jump to: navigation, search
(Dificuldade 1)
(Dificuldade 1)
 
Line 9: Line 9:
 
private String Reverse(String s)
 
private String Reverse(String s)
 
{
 
{
System.Text.StringBuilder sb =  
+
                    System.Text.StringBuilder sb =  
 
new System.Text.StringBuilder();
 
new System.Text.StringBuilder();
for(int i = s.Length - 1; i >= 0; i--)
+
                    for(int i = s.Length - 1; i >= 0; i--)
sb.Append(s[i]);
+
                        sb.Append(s[i]);
 
 
return sb.ToString();
+
                    return sb.ToString();
 
}
 
}
 
public int RetornarQuantidadeDePalavrasEncontradas(
 
public int RetornarQuantidadeDePalavrasEncontradas(
 
                                     String[] cruzadinha, String[] palavras)
 
                                     String[] cruzadinha, String[] palavras)
 
{
 
{
int retorno = 0;
+
                    int retorno = 0;
System.Text.StringBuilder sb;
+
                    System.Text.StringBuilder sb;
String horizontal, horizontalR, vertical, verticalR;
+
                    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();
+
    sb = new System.Text.StringBuilder();
for(int i = 0; i < cruzadinha.Length; i++)
+
    if (cruzadinha.Length > 0)             
{
+
                for(int s = 0; s < cruzadinha[0].Length; s++)
sb.Append(cruzadinha[i]);
+
                {
sb.Append(" ");
+
                    for(int i = 0; i < cruzadinha.Length; i++)                 
}
+
                        sb.Append(cruzadinha[i][s]);                     
horizontal = sb.ToString();
+
                    sb.Append(" ");
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();
 
    vertical = sb.ToString();
 
       verticalR = Reverse(horizontal);
 
       verticalR = Reverse(horizontal);

Latest revision as of 05:45, 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;
		}		
	}
}