回文词与镜像词,紫书P48Uva401

来源:互联网 发布:gtx950m4g独显数据 编辑:程序博客网 时间:2024/06/03 03:10

关于回文词每个字符的对称字符的查找以及每个字符对应镜像字符的查找是本题核心。再次应用了常量数组。

<c++>// UVa401 Palindromes// Rujia Liu#include<stdio.h>#include<string.h>#include<ctype.h>const char* rev = "A   3  HIL JM O   2TUVWXY51SE Z  8 ";const char* msg[] = {"not a palindrome", "a regular palindrome", "a mirrored string", "a mirrored palindrome"};char r(char ch) {  if(isalpha(ch)) return rev[ch - 'A'];  return rev[ch - '0' + 25];}int main() {  char s[30];  while(scanf("%s", s) == 1) {    int len = strlen(s);    int p = 1, m = 1;    for(int i = 0; i < (len+1)/2; i++) {      if(s[i] != s[len-1-i]) p = 0; // 每个字符的对称字符的查找      if(r(s[i]) != s[len-1-i]) m = 0; //每个字符对应镜像字符的查找    }    printf("%s -- is %s.\n\n", s, msg[m*2+p]);  }  return 0;}</c++>
原创粉丝点击