• hdu 1318 Palindromes


    题目

    这道题的难点在于求镜像串,这道题一共会涉及到的字符共有26+9 个,镜像是用一个一维数组存起来的,要是这35个字符中有字符是镜像串,就把它的镜像字符存到这个一维数组中相应的位置,要是不是就用空格代替。

    isalpha( x ),这个函数是用来判断 x 是不是英文字符。

    相同的还有:isdigit( x ); 判断 x 是不是数字

     这段代码在紫书上的49页

    #include<stdio.h>
    #include<ctype.h>
    #include<string.h>
    const char* msg[]={
    		 "not a palindrome",//不是回文串 也不是 镜像串 0
    		  "a regular palindrome",//是回文串 不是 镜像串 1
     		 "a mirrored string",//不是回文串 是 镜像串  2
    		 "a mirrored palindrome"//回文串 镜像串        3
    	};
    char rev[]="A   3  HIL JM O   2TUVWXY51SE Z  8 ";
    char mirr(char ch)
    {
    	if(isalpha(ch)) return rev[ch-'A'];
    	return rev[ch-'0'+25];
    }
    int main()
    {
    	char str[30];
    	while(scanf("%s",str)==1)
    	{
    		int len = strlen(str);
    		int p=1,m=1;
    		for(int i=0;i<(len+1)/2;i++)
    		{
    			if(str[i]!=str[len-1-i]){//判断是否是回文串
    				p=0;
    			}
    
    			if(mirr(str[i])!=str[len-1-i]){//判断是否是镜像串
    				m=0;
    			}
    		}
    		printf("%s -- is %s.
    
    ",str,msg[2*m+p]);
    	}
    	return 0;
    }
    


  • 相关阅读:
    算法--字符串分隔符/字符串匹配算法
    VMware虚拟机磁盘收缩的几种方法
    maven学习--生命周期
    web适配问题
    eclipse按照svn插件
    一台服务器跑两个tomcat
    postgresql数据库
    visio2013破解工具
    多线程学习
    深入理解Java:SimpleDateFormat安全的时间格式化
  • 原文地址:https://www.cnblogs.com/qie-wei/p/10160256.html
Copyright © 2020-2023  润新知