Difference between revisions of "Solução CSharp: Problema da sopa de letras (versão cruzadinha)"
From AdonaiMedrado.Pro.Br
(New page: == Dificuldade 1 == <code lang="csharp"> using System; namespace LaboratorioDeProgramacao2 { public class CruzadinhaD1 { private String Reverse(String s) { System.Text.StringBuil...) |
(→Dificuldade 1) |
||
Line 17: | Line 17: | ||
} | } | ||
public int RetornarQuantidadeDePalavrasEncontradas( | public int RetornarQuantidadeDePalavrasEncontradas( | ||
− | + | String[] cruzadinha, String[] palavras) | |
{ | { | ||
int retorno = 0; | int retorno = 0; | ||
Line 40: | Line 40: | ||
sb.Append(" "); | 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; | |
− | } | + | } |
} | } | ||
} | } | ||
</code> | </code> |
Revision as of 05:42, 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; } } }