URI Online Judge | 1263
Aliteração
Por TopCoder*
EUA
Timelimit: 1
EUA
Uma aliteração ocorre quando duas ou mais palavras consecutivas de um texto possuem a mesma letra inicial (ignorando maiúsculas e minúsculas). Sua tarefa é desenvolver um programa que identifique, a partir de uma sequência de palavras, o número de aliterações que essa sequência possui.
Entrada
A entrada contém diversos casos de testes. Cada caso é expresso como um texto em uma única linha, contendo de 1 a 100 palavras separadas por um único espaço, cada palavra tendo de 1 a 50 letras minúsculas ou maiúsculas ('A'-'Z','a'-'z'). A entrada termina em EOF.
Saída
Para cada caso de teste imprima o número de aliterações existentes no texto informado, conforme exemplos abaixo.
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
char line[6001];
char *curr, *prev, letter;
int length, alliterations;
while (fgets(line, 6001, stdin)) {
alliterations = 0;
length = 0;
letter = '\0';
curr = line;
prev = NULL;
while (*curr != '\n') {
if (!prev || *prev == ' ' && *curr != ' ') {
if (letter == tolower(*curr))
++length;
else {
if (length > 1)
++alliterations;
length = 1;
letter = tolower(*curr);
}
}
prev = curr;
++curr;
}
if (length > 1)
++alliterations;
printf("%d\n", alliterations);
}
return 0;
}
Nenhum comentário:
Postar um comentário