/*
* 解题思路:
*
这道题题意不难理解、就四种情况。搞了一个下午才AC,我用 C 写的 ,为了判断英文字符还是数字字符,用了一个函数isalpha( char c ),
* 这个函数是在#include<cytpe.h>中,不知道为什么那样判断有问题,所以一直过不了,换成通俗的 if() 判断一下就AC了,
*/
#include <stdio.h>
#include <string.h>
#define A 50
int main( )
{
char ss[ A ] = { 'A',' ' ,' ' ,' ' , '3', ' ', ' ', 'H','I','L',' ', 'J','M',' ', 'O', ' ', ' ', ' ', '2', 'T','U','V','W','X','Y','5','1','S','E',' ', 'Z',' ', ' ', '8', ' '};
char str[ 100 ];
int i,j;
int len;
int flag1,flag2,flag3;
while( ~scanf("%s",str) )
{
flag1 = flag2 = 1;
len = strlen( str );
for( i=0,j=len-1; i<=len/2 ; i++,j-- )
{
if( flag1 )
if( str[ i ] != str[ j ] )
flag1 = 0;
if( flag2 )
{
flag3 = 0;
if( str[ i ] >='A' && str[ i ] <='Z' )
flag3 = 1;
if( flag3 == 1 ) flag3 = str[ i ]-'A';
else flag3 = 26 + str[ i ]-'1';
if( str[ j ] != ss[ flag3 ] || ss[ flag3 ] ==' ' )
flag2 = 0;
}
if( !flag1 && !flag2 ) break;
}
if( flag1 && flag2 ) printf("%s -- is a mirrored palindrome.\n\n",str);
else if( flag1 && !flag2 ) printf("%s -- is a regular palindrome.\n\n",str );
else if( !flag1 && flag2 ) printf("%s -- is a mirrored string.\n\n",str);
else if( !flag1 && !flag2 ) printf("%s -- is not a palindrome.\n\n",str);
}
return 0;
}
分享到:
相关推荐
利用C#语言完成UVA题目回文词,使用前注意修改命名空间
判断输入字符串是否为镜像或回文串。 来源于UVaOJ - 401. 水题。
在c程序中利用堆栈的先入后出的特点实现回文的算法,
[4.5.1]--312双端队列抽象数据类型及Python实现+回文词判定.srt
[4.5.1]--312双端队列抽象数据类型及Python实现+回文词判定.mp4
回文串是从左到右读与从右到左读字符方式一样的一个字符串,如ABCBA、eluparcettecrapule是回文串,但123431不是回文串。 编一个程序判断一个串是否为回文串。 键盘输入一个以回车结尾的字符串STR,如果是回文串,...
简单的回文实验代码,简单的回文实验代码·····
递归实现回文判断
一字符串若从正、反两个方向读是相同的,称为回文。若不计空格从正、反两个方向读是相同的,称为组合回文。设计一程序,判断一输入字符串是回文、组合回文或者不是回文。
回文序列
回文数 关于C++的回文数回文数 关于C++的回文数回文数 关于C++的回文数回文数 关于C++的回文数回文数 关于C++的回文数
else Console.WriteLine("该数组显然不是回文数组"); /*//第三个循环,输入数字b for (i = 0; i ; i++) { b[i] = char.Parse(Console.ReadLine()); } //第四个循环,输出数组b for (i = 0; i ; i++) ...
用递归实现回文判断,有GUI界面。算法简洁明了。请多指教
java作业 用java实现判断回文程序免费下载
回文序列 数据结构回文序列 数据结构 C语言版本C语言版本
可实现三种功能: (1)判断一整个字符串是否为回文; (2)判断指定位置的子串是否为回文; (3)输出此字符串中最长的子字符串;
1155:回文三位数 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 13662 通过数: 8867 【题目描述】 如果一个数从左边读和从右边读都是同一个数,就称为回文数。例如6886就是一个回文数,求出所有的既是回文数又是...
这是一个回文判断的算法,很详细 欢迎大家下载
最长回文子串
运用python进行回文数实现,交换位置。回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这样的特征,成为回文数