Comentário por Pedro Racchetti
Emoticons
Conhecimento prévio necessário:
Para esse problema, basta passarmos por todas as strings fornecidas, e verificarmos a quantidade de emoticons, como descrito no problema, nelas.
Para isso, podemos usar um laço
para encontrar as strings, e encadeado nesse laço um laço
para passar pelas strings, e verificar se existe algum caractere nessa string é um
, e é seguido por
, e caso seguido por
aumentaremos o número de emoticons felizes, caso seguido por
aumentaremos o número de emoticons tristes. No final, basta comparar os números de cada tipo de emoticon.
Complexidade:
.
Segue o código, comentado, para melhor compreensão da solução!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include<bits/stdc++.h> | |
| using namespace std; | |
| //aqui declaramos as variáveis que precisaremos no programa | |
| string s; | |
| int numfeliz, numtriste; | |
| int main(){ | |
| while(cin >> s){ //a funcao de entrada cin retorna falso quando não consegue mais ler | |
| if(s.length() < 3) continue; //se essa palavra tem menos de tres caracteres, | |
| //essa palavra com certeza não é um emoticon | |
| for(int i = 0; i < s.length() – 2; i++){ | |
| if(s[i] == ':' && s[i+1] == '-' && s[i+2] == ')' ) numfeliz++; | |
| //somamos um no numero de emoticons felizes | |
| if(s[i] == ':' && s[i+1] == '-' && s[i+2] == '(' ) numtriste++; | |
| //somamos um no numero de emoticons tristes | |
| } | |
| } | |
| //comparamos os numeros de emoticons | |
| if(numfeliz == numtriste) cout << "neutro" << endl; | |
| else if(numfeliz > numtriste) cout << "divertido" << endl; | |
| else cout << "chateado" << endl; | |
| } |
