9.401 - Palindromes-程序员宅基地

技术标签: python  

本题是比较字符串,判断是回文数还是镜面反射数. 
先把满足条件的字符存在一个数组中,在非扩展ASCII码中,char 最大127. 
用大小为128的数组就够了. 

int main() 

    char C[128]; 
    C['A']='A',C['E']='3',C['H']='H',C['I']='I',C['J']='L',C['L']='J',C['M']='M'; 
    C['O']='O',C['S']='2',C['T']='T',C['U']='U',C['V']='V',C['W']='W',C['X']='X'; 
    C['Y']='Y',C['Z']='5',C['1']='1',C['2']='S',C['3']='E',C['5']='Z',C['8']='8'; 
    char str[512]; 
    while(gets(str)!=NULL) 
    { 
        int len=strlen(str),i,j,LEN=(len>>1); 
        for(i=0; i<len; i++)///题目说'0'和'O'认为是一样的 
        { 
            if(str[i]=='0') 
                str[i]='O'; 
        } 
        bool _pa=1,_mi=1; 
        ///判断回文数,比较规律为 0 <-> len-1;1 <->len-2;...;只需比到 (len-1)/2 <-> (len-1)/2 +1 的地方就行了
        for(i=0,j=len-1; i<LEN; i++,j--) 
        { 
            if(str[i]!=str[j]) 
            { 
                _pa=0; 
                break; 
            } 
        } 
        ///判断镜面数,比较规律如上.但是注意 如果是奇数长度 必须比较中间那个, 比如是'B',没有镜面数. 
        for(i=0,j=len-1; i<=LEN; i++,j--)
        { 
            if(C[str[i]]!=str[j]) 
            { 
                _mi=0; 
                break; 
            } 
        } 
        char ans[8][64]= {" -- is not a palindrome."," -- is a regular palindrome."," -- is a mirrored string."," -- is a mirrored palindrome."}; 
        int k; 
        if(_pa==0&&_mi==0) k=0; 
        if(_pa==1&&_mi==0) k=1; 
        if(_pa==0&&_mi==1) k=2; 
        if(_pa==1&&_mi==1) k=3; 
        printf("%s%s\n\n",str,ans[k]); 
    } 
    return 0; 
}

转载于:https://my.oschina.net/pandacub/blog/139955

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34318272/article/details/91963266

智能推荐

sql2008和2012区别_SQL server 2008 和SQL server 2012 的优势-程序员宅基地

SQL server 2008 和SQL server 2012 的优势SQL server 数据库有SQL server 2008、SQL server 2012、SQL server 2014、SQL server 2016、这几个版本。今天我们要说的是前两个版本的优势。SQL Server 2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的M..._sqlserver2012和2008的区别

Python 3 | 类_在python中,类定义中的函数称为:一个可调用一个操作一个方法类函数-程序员宅基地

面向对象编程是最有效的软件编写方法之一。在面向对象编程中,编写表示现实世界中的事物和情景的类,并基于这些类来创建对象。编写类时,定义一大类对象都有的通用行为。基于类创建对象时,每个对象都自动具备这种通用行为,然后可根据需要赋予每个对象独特的个性,使用面向对象编程可模拟现实情景。根据类来创建对象被称为实例化。可指定在实例中存储什么信息,定义可对这些实例执行哪些操作。还可编写一些类来扩展既有类的功..._在python中,类定义中的函数称为:一个可调用一个操作一个方法类函数

ABP创建数据库操作步骤-程序员宅基地

1.1 SimpleTaskSystem.Web项目中的Web.config文件修改数据库配置。&lt;add name="Default" providerName="System.Data.SqlClient" connectionString="Data Source=127.0.0.1;Initial Catalog=SimpleTaskSystemDb;User ID=sa;Passwo...

网站图标favicon-程序员宅基地

<link rel="shortcut icon" href="xxxxx">

linux 学习系列-Linux 文件与目录管理-程序员宅基地

Linux 文件与目录管理我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /。 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。 其中比较重要的知识是处理目录的常用命令和Linux 文件内容查看。 在开始本教程前我们需要先知道什么是绝对路径与相对路径。绝对路径:路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。相对路径:路径的写法

东南大学2019年计算机学院初试经验+复试笔试回忆,复习经验+复试面试回忆。-程序员宅基地

写这篇文章的初衷就是当时自己初试复试找了好多经验贴,但是认认真真比较仔细介绍从初试到复试的全过程的看来看去就那么几篇,所以就自己写一篇吧,如果能帮到正在为梦想前行的你们那真是我莫大的荣幸。初试经验我考的是东南大学的计算机技术专硕,初试386。数学一数学是从3月份开始复习的,从复习数学开始,每天至少四个小时花在数学上,一般都是上午。整体的进度是暑假前结束一轮,一轮我用的是张宇的18讲,李永乐...

随便推点

用Python实现简单登录注册_python#1、注册 #2、登录 #3、进入的资料 #4、添加资料信息,地址随便 然后-程序员宅基地

ID = {"杨幂":'yang','王一博':'wang','阿里巴巴':'ali'}name = input("请输入你的账户:")mima = input("请输入密码:")for i in range(10): if i < 5: if mima == ID.get(name): print("登录成功") break else: if name not in ID.key..._python#1、注册 #2、登录 #3、进入的资料 #4、添加资料信息,地址随便 然后

2020十月蓝桥杯B组省赛_2020年蓝桥杯c++b组省赛-程序员宅基地

试题 A: 门牌制作本题总分:5 分【问题描述】小蓝要为一条街的住户制作门牌号。这条街一共有 2020 位住户,门牌号从 1 到 2020 编号。小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、0、1、7,即需要 1 个字符 0,2 个字符 1,1 个字符 7。请问要制作所有的 1 到 2020 号门牌,总共需要多少个字符 2?【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个_2020年蓝桥杯c++b组省赛

CI/CD学习笔记-Jenkins综合项目Github+Jenkins+Harbor+Docker-程序员宅基地

实验说明实验拓扑部署流程研发push到github代码库Jenkins 构建,pull git代码 使用maven进行编译打包打包生成的代码,生成一个新版本的镜像,push到本地docker仓库harbor发布,测试机器 pull 新版本的镜像,并删除原来的容器,重新运行新版本镜像。实验参数项目描述备注代码仓库https://github.com容器镜像仓库Harbor V2.3harbor.corp.tanzuCI/CD服务器

路由重定向问题_Daniel·M的博客-程序员宅基地

路由重定向问题如有这种错误便是重定向问题解决代码如下↓↓↓↓↓↓↓↓↓↓↓const routerPush = VueRouter.prototype.pushVueRouter.prototype.push = function push(location) { if(typeof(location)=="string"){ var Separator = "&"; if(location.indexOf('?')==-1) { Separator='?'; }

Windows下LDAP服务器配置-程序员宅基地

LDAP即轻量级目录访问协议(Lightweight Directory Access Protocol),基础知识不再赘述,本文主要记录我的配置与安装过程。LDAP for windows下载openLDAP官方网站:http://www.openldap.org/openLDAP官网只提供了linux平台的相关安装文件,windows平台的安装包可以到以下一些网站下载:http

Selenium3.0 文档——selenium.webdriver.common.action_chains-程序员宅基地

class selenium.webdriver.common.action_chains.ActionChains(driver)ActionChains是一个底层的自动交互的方法,例如鼠标移动、鼠标按键事件、键盘响应和菜单右击交互。这些对于像悬停和拖拽这种复杂的行为很有用。创建用户行为。当你调用ActionChains类中的动作方法时,这些动作都被存储在ActionChains类中的队列中。一旦

推荐文章

热门文章

相关标签