Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Palindromo
#include<stdio.h> #include<string.h> int comp_pal(char a, char b){ if(a==b){ return 1; } return 0; } int comp_esp(char a, char b){ if(a=='A' && b=='A') return 1; if((a=='E' || a=='3') && (b=='E' || b=='3')) return 1; if(a=='H' && b=='H') return 1; if(a=='I' && b=='I') return 1; if((a=='J' || a=='L') && (b=='J' || b=='L')) return 1; if(a=='M' && b=='M') return 1; if(a=='O' && b=='O') return 1; if((a=='S' || a=='2') && (b=='S' || b=='2')) return 1; if(a=='T' && b=='T') return 1; if(a=='U' && b=='U') return 1; if(a=='V' && b=='V') return 1; if(a=='W' && b=='W') return 1; if(a=='X' && b=='X') return 1; if(a=='Y' && b=='Y') return 1; if((a=='Z' || a=='5') && (b=='Z' || b=='5')) return 1; if(a=='1' && b=='1') return 1; if(a=='8' && b=='8') return 1; printf("%c %c\n",a,b); return 0; } int palindromo(char palabra[21], int tamano){ int inicio, fin=tamano-1; int espejo=1, palindromo=1; while(inicio<fin){ if(0==comp_pal(palabra[inicio], palabra[fin])) palindromo=0; if(0==comp_esp(palabra[inicio], palabra[fin])) espejo=0; inicio++; fin--; } if(espejo==1){ if(tamano%2==1) if(0==comp_esp(palabra[inicio],palabra[fin])) espejo=0; } if(espejo==1 && palindromo==1) return 3; if(espejo==1) return 1; if(palindromo==1) return 2; return 4; } int main(void) { char palabra[21]; int tamano; int resultado; while(scanf("%s", &palabra)!=EOF) { for(tamano = 0; palabra[tamano] != '\0'; ++tamano); // 1 espejo, 2 palindromo, 3 espejo palindromo, 4 no palindromo resultado = palindromo(palabra, tamano); if(resultado == 1) printf("Espejo\n"); if(resultado == 2) printf("Palindromo\n"); if(resultado == 3) printf("Espejo Palindromo\n"); if(resultado == 4) printf("No palindromo\n"); } return 0; }
run
|
edit
|
history
|
help
0
PRIx64 on gcc
Straight Max-Min Divide and Conquer
Dar
Templet
cvcvcvcvv
UsingAlgorithm
cppPyFoodVatTip
2015(M2)Simulare
Camel case
Polyrmophism