刘大婶说这个比较难,哈哈,我感觉自己写的代码还是比较简单的.

#include<stdio.h>
#include<string.h>
#include<math.h>
int is_palindrome(char x[],int n);//用于判断是否回文 //如果回文的话,返回值为1,反之为0
int is_mirrored(char x[],int n);//用于判断是否镜像 //同上
int main()
{
char a[];
int s1,q,w;
while(scanf("%s",a)!=EOF)
{
s1=strlen(a);
q=is_palindrome(a,s1); //传送过去的长度是实际长度
w=is_mirrored(a,s1);
if(q==)
{
if(w==)
printf("%s -- is a mirrored palindrome.",a);
else
printf("%s -- is a regular palindrome.",a);
}
else
{
if(w==)
printf("%s -- is a mirrored string.",a);
else
printf("%s -- is not a palindrome.",a);
}
printf("\n\n");
}
return ;
}
int is_palindrome(char x[],int n)//判断是否回文
{
int m,i,q=;
m=n/; //实际长度
for(i=;i<m;i++)
{
if(x[i]==x[n--i])
q++;
}
if(q==m)
return ;
else
return ;
}
int is_mirrored(char x[],int n)
{
char a[]={"AEHIJLMOSTUVWXYZ12358"},b[]={"A3HILJMO2TUVWXY51SEZ8"};
int s1,q=,j,m,i;
if(n%==) //用于处理字符串的奇偶数.
m=n/;
else
m=(n/)+;
s1=sizeof(a);
for(i=;i<m;i++) //一次一次的向下 传送 所输入的 字符
{
for(j=;j<s1;j++) //将上一个传送下来的字符 寻找一下看看有没有是镜像字符的
{
if(x[i]==a[j]) //将输入的字符一个个的 和 镜像字符比较
{
break; //如果有相同的就跳出去.
}
}
if(j==s1) //不是镜像字符
return ;
else //发现了 它是镜像串中的字符
{
if(x[n--i]==b[j])//用于判断左边的 是不是和它对应的镜像串.
{
q++; //用于记录有几对镜像字符.
}
}
}
if(q==m)
return ; // 所有的镜像字符都对上号了.
else
return ; // 有的镜像字符不对号.
}

程序3-3 Palindromes的更多相关文章

  1. ytu 1940:Palindromes _easy version(水题)

    Palindromes _easy version Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 47  Solved: 27[Submit][Statu ...

  2. 洛谷P1207 [USACO1.2]双重回文数 Dual Palindromes

    P1207 [USACO1.2]双重回文数 Dual Palindromes 291通过 462提交 题目提供者该用户不存在 标签USACO 难度普及- 提交  讨论  题解 最新讨论 暂时没有讨论 ...

  3. HDOJ/HDU 2163 Palindromes(判断回文串~)

    Problem Description Write a program to determine whether a word is a palindrome. A palindrome is a s ...

  4. Palindromes _easy version

    Palindromes _easy version Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Jav ...

  5. 回文质数 Prime Palindromes

    题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围[a,b](5 <= a < b <= 100,000 ...

  6. CF 316div2 E.Pig and Palindromes

    E. Pig and Palindromes Peppa the Pig was walking and walked into the forest. What a strange coincide ...

  7. P1217 [USACO1.5]回文质数 Prime Palindromes

    题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围[a,b](5 <= a < b <= 100,000 ...

  8. P1217 [USACO1.5]回文质数 Prime Palindromes(求100000000内的回文素数)

    P1217 [USACO1.5]回文质数 Prime Palindromes 题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找 ...

  9. Manacher BestCoder Round #49 ($) 1002 Three Palindromes

    题目传送门 /* Manacher:该算法能求最长回文串,思路时依据回文半径p数组找到第一个和第三个会文串,然后暴力枚举判断是否存在中间的回文串 另外,在原字符串没啥用时可以直接覆盖,省去一个数组空间 ...

随机推荐

  1. 转 linux socket的select函数例子

    使用select函数可以以非阻塞的方式和多个socket通信.程序只是演示select函数的使用,功能非常简单,即使某个连接关闭以后也不会修改当前连接数,连接数达到最大值后会终止程序. 1. 程序使用 ...

  2. 利用Druid实现应用和SQL监控

    一.关于Druid Druid是一个JDBC组件,它包括三部分: DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系. DruidDataSource 高效可 ...

  3. Deepin-安装(读写文件)权限

    在安装NODE管理模块N时,遇到了权限问题 1.给予程序读写权限(仅限文件夹) 查看权限:ls -l 或 ls 添加权限: 示例:chmod +rw xx 实例:chmod +rw node 关于权限 ...

  4. cf246 ENew Reform (并查集找环)

    Berland has n cities connected by m bidirectional roads. No road connects a city to itself, and each ...

  5. 读书笔记-HBase in Action-第二部分Advanced concepts-(3)非Javaclient

    HBase Shell HBase shell使用起来最方便,进入HBase shell控制台就可以使用. $ $HBASE_HOME/bin/hbase shell 常见操作有create(创建表) ...

  6. 嵌入式linux 实现mdev SD卡和U盘自己主动挂载和卸载的方法 mdev.conf

    首先先參考这些博客做一些了解:http://linux.chinaunix.net/techdoc/install/2009/11/18/1144936.shtml http://www.cnblog ...

  7. oracle 12c的数据库导进 11g

    从oracle 12c 备份(expdp)出来的包,还原到11g里,想想都知道会有兼容性问题. 果不其然,报错了: ORA-39142: 版本号 4.1 (在转储文件 "叉叉叉.expdp& ...

  8. Lightoj 1006 Hex-a-bonacci

    Given a code (not optimized), and necessary inputs, you have to find the output of the code for the ...

  9. linux文件读写 文件锁、select、poll【转】

    本文转载自:http://blog.csdn.net/fansongy/article/details/6853395 一.文件锁 文件锁用于多个用户共同使用或操作同一个文件.有读锁的时候可以再加读锁 ...

  10. Ubuntu18开启redis服务自启动

    设置redis服务开机自启动. 1.创建配置文件夹 sudo mkdir /etc/redis sudo cp /usr/local/redis/redis.conf /etc/redis sudo ...