Pesquisar este blog

Livros Recomendados

sábado, 5 de setembro de 2020

URI - 1263 - Aliteração - Strings - C++

Plataforma: URI
Problema2174

Enunciado:
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.

Linguagem: C++

Solução:
Diversas verificações são feitas nesta questão. Primeiramente, devemos verificar se o penúltimo caracter lido foi espaço. Caso contrário, deve-se ficar esperando a leitura de espaço. Quando espaço foi o penúltimo caracter lido, então é verificado se está sendo lido uma sequencia de palavras com a mesma inicial. Se já estiver em sequencia, então não deve ser computado o valor, mas se a sequencia for quebrada, deve-se anotar a nova letra inicial. Caso não esteja em sequencia, então é verificado se a nova palavra possui a mesma inicial da última, neste caso, é somado um para a saída.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
 
using namespace std;

char upper(char letter){
 if(letter >= 'a' and letter <='z'){
  letter = letter - 'a' + 'A';
 }
 return letter;
}

int main() {
 string line;
 while(getline(cin,line)){
  int num = 0;
  char lastWordLetter = 'a'-1;
  bool space = true;
  bool sequence = false;
  for(int i=0;i<line.length();i++){
   if(space){
    space = false;
    if(!sequence){
     if(upper(lastWordLetter) == upper(line[i])){
      //cout << line[i] << endl;
      sequence = true;
      num++;
     }
    }
    // se for letra diferente...
    if(lastWordLetter != line[i]){
     sequence = false;
     lastWordLetter = line[i];
    }
   } else{
    if(line[i]== ' '){
     space = true;
    }
   }
  }
  cout << num << endl;
 }



    return 0;
}

Nenhum comentário:

Postar um comentário

Postagem em destaque

URI (BEECROWD) - 2158 - Helping Uncle Cláudio (Ajudando o Tio Cláudio) - Matemática - C, C++ e Haskell

Buenas! Estou aqui mais uma vez para resolver um problema de Matemática! Agora tenho resolvido alguns dessa categoria, pra que vocês possam ...

Postagens mais visitadas