码迷,mamicode.com
首页 > 其他好文 > 详细

UVa401 Palindromes

时间:2015-06-20 14:18:19      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:

#include <stdio.h>
#include <string.h>

char mirror(char c)
{
    static const char m[] = "A   3  HIL JM O   2TUVWXY51SE Z  8 ";
    if (‘A‘ <= c && c <= ‘Z‘)
        return m[c-‘A‘];
    else
        return m[c-‘1‘+26];
}

int main()
{
    static const char* msg[] = { "not a palindrome", "a regular palindrome", "a mirrored string", "a mirrored palindrome" };
    char str[30];
    size_t i, j, p, m, len, hafLen;

    while (scanf("%s", str) == 1)
    {
        p = 1, m = 2;
        len = strlen(str);
        hafLen = (len+1)/2;
        for (i = 0; i < hafLen; ++i)
        {
            j = len-i-1;
            if (p && (str[i] != str[j]))
                p = 0;
            if (m && (str[i] != mirror(str[j])))
                m = 0;
            if (!p && !m)
                break;
        }
        printf("%s -- is %s.\n\n", str, msg[p+m]);
    }
}

UVa401 Palindromes

标签:

原文地址:http://www.cnblogs.com/danny1221/p/4590491.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!