Comentário NOIC OBI P1 – Emoticons

por

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 while para encontrar as strings, e encadeado nesse laço um laço for 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: O(M).

Segue o código, comentado, para melhor compreensão da solução!


#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;
}

view raw

emoticon.cpp

hosted with ❤ by GitHub