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

#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. MongoDB学习day09--Mongoose aggregate 多表关联查询

    Mongodb的aggregate应用之前已经说过了. 可以参考day06 Mongoose的aggregate函数应用 var mongoose=require('./db.js'); var Or ...

  2. 数据库中的DDL/DML/DCL解释(转)

    DDL is Data Definition Language statements. Some examples:数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言 1.CREATE - ...

  3. Google C++ style guide——C++类

    1.构造函数的职责 构造函数中仅仅进行那些没有实际意义的初始化.由于成员变量的"有意义"的值大多不在构造函数中确定. 能够的话,使用Init()方法集中初始化为有意义的数据. 长处 ...

  4. XMLHttpRequest对象解读

    <!DOCTYPE html> <html> <body> <script> function reqListener () { console.log ...

  5. 怎样更好的设计你的REST API之基于REST架构的Web Service设计及REST框架实现

    一.REST 含状态传输(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格. 眼下在 ...

  6. 项目期复习总结1:背景图合并,hack,浏览器内核前缀,伪类after before

    文件夹: 1.背景图合并和CSS Spirit 2.PS基本快捷键 3.hack技术基本书写,为什么不用? 4.内核前缀 5.伪类afterbefore 1.背景图合并和CSS Spirit 背景图合 ...

  7. EXTJS 4 树形表格组件使用演示样例

    EXTJS 4 树形表格组件使用演示样例 一.总体效果图 version=1&modificationDate=1412058826000&api=v2" alt=" ...

  8. [iOS]经常使用正則表達式

    经常使用正則表達式大全!(比如:匹配中文.匹配html) 匹配中文字符的正則表達式: [u4e00-u9fa5]    评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包含汉字 ...

  9. eclipse中经常使用快捷键

    熟练一些快捷键,会使你的开发更加快捷.高效,值得花些时间学一下! 1. ctrl+shift+r:打开资源 这可能是全部快捷键组合中最省时间的了.这组快捷键能够让你打开你的工作区中不论什么一个文件,而 ...

  10. 有oracle 10g,但没有安装arcgis,又想使用空间数据库的解决方案

    我在一台虚拟机中部署系统进行测试,配置如下: OS:WIN2008 R2 SP1 X64 DB: oracle 12c 结果系统报错,查找原因,原来是oracle里还不支持arcgis的一些所谓的空间 ...