zoukankan      html  css  js  c++  java
  • 401 Palindromes 解题报告

    其实这道题目还是比较水的啦,刚看这道题目的时候,我有些感冒,正头痛着,所以看上去满世界英文,一看就蒙了,不过做ACM这一行的,要时刻把心思集中在这上面,

    我就充分的利用了,上下课的时间去想这道题目,很快就想出来了很不错的算法哦,顿时有种豁然开朗的感觉,这几天看的书真是没白看,学会了好多思想。下面是代码

    View Code
     1 #include<stdio.h>
     2 #include<string.h>
     3 #define Lenth 2010
     4 //下面定义两个不可改变的字符串,用来查找题目中所提到的镜像字符所对应的字符
     5 const char ST[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789";
     6 const char _ST[]="A   3  HIL JM O   2TUVWXY51SE Z  8 ";
     7 //这个就是很简单的判断是不是会文的,函数,之所以单独写一个函数,是因为为了程序更清晰
     8 int palindrome(char st[])
     9 {
    10     int i, len = strlen(st);
    11         for(i = 0;i <= len/2; i++)
    12         if(st[i] != st[len-1-i])
    13         return 0;
    14     return 1;
    15 }
    16 //这个函数就是判断镜像的函数了
    17 int mirrored(char st[])
    18 {
    19     int i, len = strlen(st), flag, j;
    20     //在这里多定义一个字符数组,作用是非常强大的,不用我说,聪明的读者看了自然会懂
    21     char s[Lenth];
    22     strcpy(s,st);
    23     for(i = 0;i <= len/2; i++)
    24     {
    25         flag = 1;
    26         for(j = 0;j < 37; j++)
    27         {
    28             if(st[i] == ST[j])
    29             {
    30                 s[len-1-i] = _ST[j];
    31                 flag = 0;
    32                 break;
    33             }
    34         }
    35         if(flag)
    36         break;
    37     }
    38     if((strcmp(st,s) == 0) && (flag != 1))
    39     return 1;
    40     else
    41     return 0;
    42 }
    43 //有了前两个函数,在主函数里面只需要做一些输入输出就可以了,看起来既简洁又干脆
    44 int main()
    45 {
    46     char st[Lenth];
    47     while(gets(st) != NULL)
    48     {
    49         if(mirrored(st) && palindrome(st))
    50         printf("%s -- is a mirrored palindrome.\n",st);
    51         else if(palindrome(st))
    52         printf("%s -- is a regular palindrome.\n",st);
    53         else if(mirrored(st))
    54         printf("%s -- is a mirrored string.\n",st);
    55         else
    56         printf("%s -- is not a palindrome.\n",st);
    57         printf("\n");
    58     }
    59     return 0;
    60 }
  • 相关阅读:
    模拟按键'ESC',解决韩语等输入法对输入框(codemirror)的支持
    grpc的基础知识
    HttpClientFactory 是 HttpClient 的正确使用方式
    Workflow Core + asp.net core 5.0 实现简单审批工作流
    GitHub自动化部署(CD) asp.net core 5.0 项目(免费空间)
    CleanArchitecture Application代码生成插件-让程序员告别CURD Ctrl+C Ctrl+V
    C# 字符串转成JSON对象 反射获取属性值
    java设计模式-状态模式
    2021目前可用的百度网盘不限速下载方法
    docker映射配置文件
  • 原文地址:https://www.cnblogs.com/SDUTYST/p/2521676.html
Copyright © 2011-2022 走看看