Principiante · strings
Contar palabras
Una línea entra, el número de palabras sale. Simple — hasta que la entrada tiene espacios de más, que es justo lo que incluyen las pruebas ocultas.
Problema
Entrada: una línea de texto (solo letras y espacios, hasta 10.000 caracteres).
Salida: el número de palabras — trozos separados por espacios, ignorando los vacíos.
Ejemplo:
| Entrada | Salida |
|---|---|
hello world | 2 |
the quick brown fox | 4 |
Tu solución
Entrada personalizada para "Probar mi entrada"
La corrección se ejecuta por completo en tu navegador contra pruebas ocultas. Tu código se guarda localmente mientras escribes. Ctrl+Enter corrige.
¿Atascado? Pistas
Pista 1 — divide y cuenta
line.Split(' ') te da un array de trozos. Su Length parecería la respuesta — pero solo si no hay espacios repetidos.
Pista 2 — la trampa del trozo vacío
Dos espacios seguidos producen un string vacío en el array. Cuenta solo los trozos con Length > 0 en un foreach. Las pruebas incluyen líneas que son solo espacios.
Solución (¡inténtalo primero!)
string[] words = Console.ReadLine().Split(' ');
int count = 0;
foreach (string w in words)
{
if (w.Length > 0) count++;
}
Console.WriteLine(count);
Es el primer problema donde la respuesta ingenua falla para toda una clase de entradas — la disciplina de preguntar "¿cómo se ve el caso límite?" es la lección real.