zoukankan      html  css  js  c++  java
  • HDU1318 POJ1590 UVA401 ZOJ1325 Palindromes【回文+入门练习】

    问题链接HDU1318 POJ1590 UVA401 ZOJ1325 Palindromes基础练习题,用C语言编写程序。

    问题简述:参见上述链接。

    问题分析:(略)

    程序说明

    程序中,使用两个函数封装功能,使得程序更加简洁易懂。

    判定回文时,使用两个数组下标相向移动,是一种常见的套路。


    AC的C语言程序如下:

    /* HDU1318 POJ1590 UVA401 ZOJ1325 Palindromes */
    
    #include <stdio.h>
    #include <ctype.h>
    #include <string.h>
    
    #define MAXN 30
    
    char miroralpha[] = "A   3  HIL JM O   2TUVWXY5";
    char mirordigit[] = "1SE Z  8 ";
    char *msg[] = {" -- is not a palindrome."
                   , " -- is a regular palindrome."
                   , " -- is a mirrored string."
                   , " -- is a mirrored palindrome."};
    
    /* 字母镜像 */
    char miror(char c)
    {
        if(isalpha(c))
            return miroralpha[c - 'A'];
        else
            return mirordigit[c - '1'];
    }
    
    /* 计算字符串类型 */
    int gettype(char s[])
    {
        int start, end, p, m;
    
        p = 1;  /* 回文标志 */
        m = 1;  /* 镜像标志 */
    
        start = 0;
        end = strlen(s)-1;
        while(start <= end) {
            if(s[start] != s[end])
                p = 0;
            if(miror(s[start]) != s[end])
                m = 0;
            start++;
            end--;
        }
    
        return m * 2 + p;
    }
    
    int main(void)
    {
        char s[MAXN];
    
        while(scanf("%s", s) != EOF)
            printf("%s%s
    
    ", s, msg[gettype(s)]);
    
        return 0;
    }


  • 相关阅读:
    ssh事务配置
    使用注解实现事务处理
    c3p0、dbcp<转>
    添加业务层和事务机制
    使用spring集成hibernate
    使用Adivisor配置增强处理
    aop注解
    Spring IoC实现解耦合
    python console的命令执行
    python格式化输出
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564539.html
Copyright © 2011-2022 走看看