3-3 回文词(Palindromes P48) / HIT
来源:互联网 发布:苹果6数据流量怎么开 编辑:程序博客网 时间:2024/06/01 19:29
思路很简单,当时小心中间脑抽。。。
方法1:直接在for循环里边判断(不过当时写的时候犯了一个非常非常非常低级的错误。。。找了好久错)
#include <stdio.h>#include <stdlib.h>#include <math.h>#include <string.h>int main(){ char s[10005]; int i; while(scanf("%s",s) == 1) { int f1 = 1,f2 = 1;//这个放错地方的错。。。找了1个多小时。。。真的是够了。。 for(i = 0;i < strlen(s);i++) { if(s[i] != s[strlen(s)-1-i]) f1 = 0; char c;//一定小心啊啊啊啊啊!!!别把's'串给改了,改了后边没办法用 if(s[i] == 'E') c = '3'; else if(s[i] == '3') c = 'E'; else if(s[i] == 'J') c = 'L'; else if(s[i] == 'L') c = 'J'; else if(s[i] == 'S') c = '2'; else if(s[i] == '2') c = 'S'; else if(s[i] == 'Z') c = '5'; else if(s[i] == '5') c = 'Z'; else if(s[i] == 'A'||s[i] == 'H'||s[i] == 'I'||s[i] == 'M'||s[i] == 'O'||s[i] == 'T'||s[i] == 'U'||s[i] == 'V'||s[i] == 'W'||s[i] == 'X'||s[i] == 'Y'||s[i] == '1'||s[i] == '8') c = s[i]; else c = s[i]+1; if(c != s[strlen(s)-1-i]) f2 = 0; } if(f2 && !f1) printf("%s -- is a mirrored string.\n",s); else if(!f2 && f1) printf("%s -- is a regular palindrome.\n",s); else if(f1 && f2) printf("%s -- is a mirrored palindrome.\n",s); else if(!f1 && !f2) printf("%s -- is not a palindrome.\n",s); printf("\n"); } return 0;}方法2:用字符的ASC码做数组下标。
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int main(){ int r[256][256]={0}; r['A']['A']=1; r['E']['3']=1; r['H']['H']=1; r['I']['I']=1; r['J']['L']=1; r['L']['J']=1; r['M']['M']=1; r['O']['O']=1; r['S']['2']=1; r['T']['T']=1; r['U']['U']=1; r['V']['V']=1; r['W']['W']=1; r['X']['X']=1; r['Y']['Y']=1; r['Z']['5']=1; r['1']['1']=1; r['2']['S']=1; r['3']['E']=1; r['5']['Z']=1; r['8']['8']=1; char s[100005]; while(~scanf("%s",s)) { int len=strlen(s); int f1=1,f2=1; for(int i=0;i<len;i++) { char a=s[i],b=s[len-1-i]; if(a!=b) f1=0; if(!r[a][b]) f2=0; } if(!f1&&!f2) printf("%s -- is not a palindrome.\n",s); if(f1&&!f2) printf("%s -- is a regular palindrome.\n",s); if(!f1&&f2) printf("%s -- is a mirrored string.\n",s); if(f1&&f2) printf("%s -- is a mirrored palindrome.\n",s); printf("\n"); }}
阅读全文
0 0
- 3-3 回文词(Palindromes P48) / HIT
- 紫书 p48 例题 回文词
- UVA 401(p48)----Palindromes
- 例题3-3 回文词(Palindromes)
- 回文词(401 - Palindromes)
- 回文词(Palindromes, UVa401)
- 回文词(Palindromes, UVa401)
- 回文词(Palindromes,UVa401)
- UVa 401 Palindromes(回文词)
- 回文词(Palindromes, UVa 401)
- UVa 401 回文词(Palindromes)
- hdu1318 Palindromes(回文)
- hit 1004 Prime Palindromes
- UVa 401 - Palindromes(回文词)
- UVA 401 Palindromes 回文词
- UVA 401 Palindromes 回文词
- UVA 401 Palindromes(回文词)
- 《算法竞赛入门经典2ndEdition 》例题3-3 回文词(Palindromes, Uva401)
- 反射和JavaBean
- 一种新的布局方式
- Java编程思想多态
- 约瑟夫问题-c基础第一课
- Hibernate5.2中关于Criteria的用法
- 3-3 回文词(Palindromes P48) / HIT
- Unity制作SpaceShooter游戏
- python的字符串和列表
- 2014-2015 ACM-ICPC, Central Europe Regional Contest (CERC 14) [Gym-100543G]
- Polya
- 查找算法
- Vue 懒加载组件 路径不对
- Java中的最常犯的错误Top10
- hdu1411(四面体体积)