UVa401:Palindromes
2018-02-06 21:28
253 查看
题目:4种情况, 判断是否为回文, 是否为镜面对称。
#include <stdio.h> #include <string.h> int p(char str[]) //是否为回文 { int i; for(i=0; i<strlen(str)/2; i++) { if(str[i]!=str[strlen(str)-i-1]) { return 0; break; } } return 1; } char ch[]="AEHIJLMOSTUVWXYZ12358"; char re[]="A3HILJMO2TUVWXY51SEZ8"; int m(char str[]) //是否为镜面 { int table_len = strlen(ch); int i,j,len = strlen(str); if(len == 1) { for(j=0; j<table_len; j++) { if(ch[j] == str[0]) break; } if(j == 21 || re[j] != str[0]) //判断是否有相同的或是镜面所对应过去的是否也相等 return 0; } else if(len > 1) { for(i=0; i<len/2; i++) { for(j=0; j<table_len; j++) { if(ch[j] == str[i]) break; } if(j == 21 || re[j] != str[len-i-1]) //判断是否有相同的或是镜面所对应过去的是否也相等 return 0; } } return 1; } int main() { char str[101], i; while(1) { if(gets(str)==NULL) break; printf("%s -- is ",str); if(p(str)==1 && m(str)==1) printf("a mirrored palindrome.\n\n"); else if(p(str)==1 && m(str)==0) printf("a regular palindrome.\n\n"); else if(p(str)==0 && m(str)==1) printf("a mirrored string.\n\n"); else if(p(str)==0 && m(str)==0) printf("not a palindrome.\n\n"); } }
相关文章推荐
- UVA401 - Palindromes
- 回文词(Palindromes, UVa401)
- 算法竞赛 例3-3回文词(Palindromes,UVa401)
- 【紫书】例题3-3 回文词(Palindromes, UVa401)
- uva401 - Palindromes
- 回文字镜像字 (Palindromes, UVa401)
- 例题3-3 回文词(Palindromes,UVa401)
- UVA401 -Palindromes
- 《算法竞赛入门经典2ndEdition 》例题3-3 回文词(Palindromes, Uva401)
- UVa401 - Palindromes-字符串(镜像字符串)-难度2
- 回文词(Palindromes, UVa401)
- Palindromes - uva401
- UVa 401 Palindromes
- P1217 [USACO1.5]回文质数 Prime Palindromes
- 章三例题3——UVA 401 Palindromes
- Codeforecs 465C No To Palindromes! 构造+思维
- 【UOJ #103】【APIO 2014】Palindromes
- USACO-Section1.5 Prime Palindromes【暴力枚举】
- hdu2029 Palindromes _easy version(C语言)
- Partitioning by Palindromes UVA - 11584