zoukankan      html  css  js  c++  java
  • 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;
    }
    


  • 相关阅读:
    [GCJ2017R2]Fresh Chocolate
    李耀于NOIP2010集训出的题 Dvalue
    POI ZAW
    POI SZP
    無名(noname)
    幸运序列(lucky)
    [HNOI2001]求正整数
    灰狼呼唤着同胞(brethren)
    神在夏至祭降下了神谕(oracle)
    [bzoj 4237] 稻草人
  • 原文地址:https://www.cnblogs.com/qie-wei/p/10160256.html
Copyright © 2011-2022 走看看