uva401Palindromes(回文串和镜像串的判断)
来源:互联网 发布:css布局 书籍 知乎 编辑:程序博客网 时间:2024/06/04 18:50
回文串:是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。
镜像串:串水平镜像后和原串相同,如2S和3AIAE。注意并不是所有字符镜像后都能得到一个合法字符。
判断回文串方法:
#include<stdio.h>#include<string.h>int main(void){ char s[30]; int b=0; //1表示不是回文字符串 puts("请输入一个字符串:"); scanf("%s",s); for(int i=0;i<strlen(s)/2;i++) if(s[i]!=s[strlen(s)-i-1]) { b++; break; } if(b) printf("这不是回文字符串。"); else printf("这是回文字符串。"); return 0;}判断镜像串方法:
#include <stdio> #include <string.h> char *rev = "A 3 HIL JM O 2TUVWXY51SE Z 8 ";//空格分别为3,2,1,1,3,1,2,1 int main() { char s[30]; while(scanf("%s",s) == 1) { int len = strlen(s); int p=1,m=1; for(int i=0;i<(len+1)/2;i++)//若为奇数,中间那个字符也要判断 { if(r(s[i])!=s[len-1-i]) m=0;//不是镜像串 } if(m) printf("是回文串\n"); else printf("不是回文串\n"); } }
实例:紫书例题3-3:回文词uva401
题意:输入一个字符串,判断它是否为镜像串级回文串.输入的字符串保证不含数字0.
所谓镜像串, 是指左右镜像后原串相同,如 2S 和 3AIAE. 注意,并不是所有的字符在镜像之后都会得到一个合法字符.
#include <cstdio> #include <cstring> #include <cctype> const char *rev = "A 3 HIL JM O 2TUVWXY51SE Z 8 ";//空格分别为3,2,1,1,3,1,2,1 const char *msg[]= { "not a palindrome", "a regular palindrome", "a mirrored string", "a mirrored palindrome", }; char r(char ch) { if(isalpha(ch)) return rev[ch-'A']; return rev[ch-'0'+25];//前面有26个字母!? } int main() { char s[30]; while(scanf("%s",s) == 1) { int len = strlen(s); int p=1,m=1; for(int i=0;i<(len+1)/2;i++)//若为奇数,中间那个字符也要判断 { if(s[i]!=s[len-1-i]) p=0;//不是回文串 if(r(s[i])!=s[len-1-i]) m=0;//不是镜像串 } printf("%s -- is %s.\n\n",s,msg[m*2+p]); } }
0 0
- uva401Palindromes(回文串和镜像串的判断)
- 判断镜像串和回文串
- uva401Palindromes
- 回文词和镜像串的判断
- UVA 401 - Palindromes(判断回文串和镜像串)
- 判断回文串,判断回文数,最长回文串,回文串的个数
- (c语言)回文字符串的判断,gets和scanf
- 求水仙花数和回文的判断
- JavaScript栈的实现和回文判断
- 判断一个字符串是否为回文串和镜像串(Palindromes)
- 回文/回文数的判断
- UVa 401 Palindromes (回文串与镜像串的综合判断)
- 字符串的最大回文子串判断
- Best Reward (KMP 回文串的判断)
- 字符串___回文串的判断
- 【算法】最长回文子串的判断
- (C语言)回文数的判断
- 算法学习(九)回文的判断
- IOS开发之HomeKit(四)
- CSU 1895 Apache is late again(根号2加1的n次方)
- 原生JS添加鼠标事件
- 数字的大写字母的乱序整理
- Android Native嵌入React Native模块
- uva401Palindromes(回文串和镜像串的判断)
- 图片处理,圆形圆角描边
- AngularJS之使用服务封装
- Vim快速选中、删除、复制引号或括号中的内容
- flume+kafka+hdfs日志系统
- 七.Scala 运算符
- Android 动画-Interpolator和TypeEvaluator
- kubenetes中指定web服务器使用的数据库(集群配置管理方案--ConfigMap)
- Android异步消息处理 (Handler)