2242 - Huaauhahhuahau
Esse problema é uma mentira, todo o mundo sabe que huehuehue é a risada mais engraçada que tem.
Descrição
Solução
Você pode tomar dois passos simples para resolver este problema:
Tirar todas as letras que não são vogais da risada original, ficando com uma nova risada agora apenas com as vogais;
Você pode comparar a risada com vogais com uma versão da risada das vogais, só que invertida. Neste caso, se as duas risadas, a normal e a invertida, forem iguais, então imprimir S, senão imprimir N.
Se preferir, você pode fazer o passo 2 fazendo um for que vai do começo até a metade comparando a primeira letra com a última, a segunda com a penúltima, a terceira com a antipenúltima e assim sucessivamente. Na minha implementação em C eu inclusive ignorei o primeiro passo completamente, usando um artifício de que eu só comparo letras se ambas forem vogais e ignorando as consoantes presentes.
#include <string.h>
#include <stdio.h>
int vogal(char letra){
switch(letra){
case 'a':
case 'e':
case 'i':
case 'o':
case 'u': return 1;
default: return 0;
}
}
int main(){
int i, f;
int engracada;
char risada[51];
scanf("%s", &risada);
i = 0;
f = strlen(risada) - 1;
engracada = 1;
while(i < f){
if(vogal(risada[i]) && vogal(risada[f])){
if(risada[i] != risada[f]){
engracada = 0;
break;
}
++i;
--f;
}else{
if(!vogal(risada[i])) ++i;
if(!vogal(risada[f])) --f;
}
}
printf("%c\n", engracada ? 'S' : 'N');
return 0;
}
Last updated
Was this helpful?