Uva-1339 Ancient Cipher
2017-10-22 18:02
113 查看
Uva-1339题目链接
题意
对比两串字符串,如果一字符串内所有字母与另一字符串的字母是一一映射替换的,且相同字母替换的字母也相同,如果是就输出YES,否则输出NO
过程
这个题目表面上是字符匹配的问题,其实只是排序问题,将字符串的相同的字母进行计数存入到数组中,只要保证相同的字母个数相同就可以判断:一字符串内所有字母与另一字符串的字母是一一映射替换的,且相同字母替换的字母也相同,这里就对字符的ASCLL数值进行操作,代码如下:
代码中使用了sort函数,这个函数可以进行快速排列,有关sort函数会单独写一篇博客后期补上链接
注: 片段代码或者语言如有错误望谅解并请指出。
题意
对比两串字符串,如果一字符串内所有字母与另一字符串的字母是一一映射替换的,且相同字母替换的字母也相同,如果是就输出YES,否则输出NO
过程
这个题目表面上是字符匹配的问题,其实只是排序问题,将字符串的相同的字母进行计数存入到数组中,只要保证相同的字母个数相同就可以判断:一字符串内所有字母与另一字符串的字母是一一映射替换的,且相同字母替换的字母也相同,这里就对字符的ASCLL数值进行操作,代码如下:
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; char str[105],str1[105]; int main() { int k,a[26],b[26],flag; while(gets(str)) { flag=1; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); int len=strlen(str); for(int i=0;i<len;i++) { k=str[i]-'A'; a[k]++; } gets(str1); for(int i=0;i<len;i++) { k=str1[i]-'A'; b[k]++; } sort(a,a+26);//排序 sort(b,b+26); for(int i=0;i<26;i++) { if(a[i]!=b[i]) flag=0; } if(flag) printf("YES\n"); else printf("NO\n"); } return 0; }
代码中使用了sort函数,这个函数可以进行快速排列,有关sort函数会单独写一篇博客后期补上链接
注: 片段代码或者语言如有错误望谅解并请指出。
相关文章推荐
- UVA-1149 Bin Packing (贪心)
- UVa 11292 Dragon of Loowater
- UVA 11198 Dancing Digits
- uva 10972 - RevolC FaeLoN(边双连通分量)
- UVA 558 Wormholes 【SPFA 判负环】
- uva 225(dfs)
- uva 247 calling circles
- uva1347 经典dp
- 【组合计数】UVA - 11538 - Chess Queen
- uvalive 2326 - Moving Tables(区间覆盖问题)
- UVa 10879 代码重构
- UVa10344
- uva 10056(等比数列求和)
- UVA 11388-GCD LCM(数学)
- uva 10420 List of Conquests
- UVa11078 - Open Credit System
- 【算法竞赛入门经典】6.5[图的概念和拓扑序] 例题6-21 UVa506
- 白书例题 uva 10561 Treblecross
- UVA 10118 dfs