Difference between revisions of "Solução CSharp: Problema da sopa de letras (versão cruzadinha)"
From AdonaiMedrado.Pro.Br
(→Dificuldade 1) |
(→Dificuldade 1) |
||
Line 9: | Line 9: | ||
private String Reverse(String s) | private String Reverse(String s) | ||
{ | { | ||
− | + | System.Text.StringBuilder sb = | |
new System.Text.StringBuilder(); | new System.Text.StringBuilder(); | ||
− | + | for(int i = s.Length - 1; i >= 0; i--) | |
− | + | sb.Append(s[i]); | |
− | + | return sb.ToString(); | |
} | } | ||
public int RetornarQuantidadeDePalavrasEncontradas( | public int RetornarQuantidadeDePalavrasEncontradas( | ||
String[] cruzadinha, String[] palavras) | 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(); | 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; } } }