UVA 401
来源:互联网 发布:photoshop for mac下载 编辑:程序博客网 时间:2024/04/29 19:59
# include <stdio.h># include <string.h>#define N 20int judge(char p[], char t[], int n) { int i; for(i= 0; i < (n+1) / 2; i++) {if(p[i] != t[i])break; } if(i == (n+1) / 2) return 1; else return 0;} int judge2(char p[], int l){ char temp[21]; char alpha[] = {'A',' ',' ',' ','3',' ',' ','H', 'I','L',' ','J','M',' ','O',' ',' ',' ','2','T','U','V','W','X','Y','5'}; char num[] = {'1','S','E',' ','Z',' ',' ','8',' '}; int i,j,k; for(i = 0,j = l-1;i < l;i++,j--){ if(p[i] >= 'A' && p[i] <= 'Z'){ k = p[i] - 'A'; temp[i] = alpha[k]; } else{ k = p[i] - '1'; temp[i] = num[k]; } if((temp[i] == '0' && p[j] == 'O') || (temp[i] == 'O' && p[j] == '0')){ continue; } if(temp[i] != p[j]){ return 0; } } return 1; } int main(){int i = 0;char a[N+1], b[N+1];while(scanf("%s", a) != EOF){int n = strlen(a);for(i =0; i<n; i++){b[i] = a[n-i-1];}int one = judge(a, b, n);int two = judge2(a, n);for(i = 0; i< n; i++){printf("%c", a[i]);}if(one == 0 && two == 0)printf(" -- is not a palindrome.\n\n");else if (one == 1 && two == 0)printf(" -- is a regular palindrome.\n\n");else if (one == 0 && two == 1)printf(" -- is a mirrored string.\n\n");elseprintf(" -- is a mirrored palindrome.\n\n");}return 0;} 差不过算是第一次接触,全英文的题目,所以前几次的理解都有问题,刚开始,把回文和镜像一起判断,最后再根据,回文和镜像的字母是不一样的,做进一布的判断,最后还是选择,通过函数,分别判断回文和镜像,再通过回文和镜像的组合进行输出
0 0
- uva 401
- uva 401
- uva 401
- uva-401
- uva 401
- uva 401
- UVA 401
- UVa-401
- UVA 401
- UVA 401
- UVA 401
- UVA 401
- uva 401
- uva 401
- UVA-401
- UVA 401
- UVa 401
- UVA 401
- GTK入门学习:布局练习之计算器
- 读书笔记4 用户体验要素
- 三个同步与互斥问题之哲学家就餐
- Android Gradle Plugin指南(二)——基本项目 - 琴弦第七的专栏 - 博客频道 - CSDN.NET
- POJ 2945 Find the Clones
- UVA 401
- BFS-POJ-3278-Catch That Cow
- CSS盒子模型
- 折半查找
- LeetCode---(160)Intersection of Two Linked Lists判断两个链表是否相交
- vector 四
- LeetCode(94) Binary Tree Inorder Traversal
- sift是图像匹配的非常经典的算法
- shape layer-list selector使用