这道题就是统计各个字母出现的次数是否相等。

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int main()
{char a[105],b[105];int i,j,k,l,a1[26],b1[26],t;while(~(scanf("%s%s",a,b))){memset(a1,0,sizeof(a1));memset(b1,0,sizeof(b1));for(i=0;i<strlen(a);i++){a1[a[i]-'A']++;}for(i=0;i<strlen(b);i++){b1[b[i]-'A']++;}for(i=0;i<25;i++){for(j=0;j<25-i;j++){if(a1[j]>a1[j+1]){t=a1[j+1];a1[j+1]=a1[j];a1[j]=t;}}}for(i=0;i<25;i++){for(j=0;j<25-i;j++){if(b1[j]>b1[j+1]){t=b1[j+1];b1[j+1]=b1[j];b1[j]=t;}}}for(i=0;i<26;i++){if(a1[i]!=b1[i])break;}if(i!=26)printf("NO\n");elseprintf("YES\n");}return 0;
}

排序这里可以调用库函数。如sort,所以代码也可以写成这样。

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int main()
{char a[105],b[105];int i,j,k,l,a1[26],b1[26],t;while(~(scanf("%s%s",a,b))){memset(a1,0,sizeof(a1));memset(b1,0,sizeof(b1));for(i=0;i<strlen(a);i++){a1[a[i]-'A']++;}for(i=0;i<strlen(b);i++){b1[b[i]-'A']++;}for(i=0;i<25;i++){for(j=0;j<25-i;j++){if(a1[j]>a1[j+1]){t=a1[j+1];a1[j+1]=a1[j];a1[j]=t;}}}sort(a1,a1+26)sort(b1,b1+26);if(i!=26)printf("NO\n");elseprintf("YES\n");}return 0;
}

注意掌握库函数是很重要的,他可以让你少犯些错误。

uva 1339 题解相关推荐

  1. UVA - 1339 ​​​​​​​Ancient Cipher

    Ancient Cipher UVA - 1339 题目传送门 解决方法:模拟一下转换过程即可. AC代码: #include <cstdio> #include <iostream ...

  2. UVa 1339,紫书P73,词频

    题目链接:https://uva.onlinejudge.org/external/13/1339.pdf 紫书P73 解题报告: #include <stdio.h> #include ...

  3. 【ACM】UVa 1339

    [题目]:给定两个长度相同且不超过100的字符串,判断是否能把其中一个字符串的各个字母重排,然后对26个字母做一一映射,使得两个字符串相同.输入两个字符串,输出"YES"或者&qu ...

  4. 《算法竞赛入门经典》 例题 4-1 古老的密码(Ancient Cipher) UVa 1339

    题目描述 给定两个长度相同且不超过100的字符串,判断是否能把其中一个字符串的各个字母重排,然后对26个字母做一个一一映射,使得两个字符串相同. 例如,JWPUDJSTVP重排后可以得到WJDUPSJ ...

  5. (精讲)UVA - 1339 Ancient Cipher 刘汝佳紫书题单(算法竞赛入门经典)

    仔细读题并且对比样例可以发现,字母的替换和换元的规律是不同的,所以不能用模拟法将原来的字符串找到进行比对,所以要从替换换元前后的特点来看. 替换: 替换前后的两个字母集合可以看作是一个映射: 例如 H ...

  6. Ancient Cipher UVA - 1339 古老的密码

    题目链接 给定两个长度相同且不超过100的字符串,判断是否能把其中一个字符串的各个字母重排,然后对26个字母做一个一一映射,使得两个字符串相同.例如,JWPUDJSTVP重排后可以得到WJDUPSJP ...

  7. UVA 1339(古老的密码)

    坑人的题意呀,翻译半天没翻译懂,看了看紫书,题意也是模模糊糊. 推了推输入输出,得到了大概的题意. 题目大意:给定两个长度相同且不超过100个字符的字符串,判断能否把其中一个字符串重排后,然后对26个 ...

  8. 例题 4-1 古老的密码(Ancient Cipher) UVa 1339

    题目:古老的密码 题目描述: 给定两个长度一样且不超过100的字符串,判断是否能把其中一个字符串的各个字母重排,之后对26个字母做一个一一映射,使得两个字符串相同 例如,JWPUDJSTVP重排后可以 ...

  9. 矩阵模板hdu5015,UVA 10655,UVA 11149

    hdu5015 n是<=10的,可以想到点什么,, 构造矩阵mat[n+2][n+2] 发现mat*a是答案矩阵第1列 mat的m次方再乘a就是答案矩阵的第m列,取最下面的就行了 这板不错 #i ...

  10. UVa1339 Ancient Cipher(贪心算法)

    问题:有一个混合加密算法,通过替换和排列将原字符串加密成另外一个字符串.给出两个字符串,问是否可以从原串转为另外一串 思路: 因为是通过文字替换后,替换前后的字符计数是不变的.而通过排列方式只是改变了 ...

最新文章

  1. css 商城 两列_如何使用css伪元素实现超实用的图标库(附源码)
  2. jSearch(聚搜) v0.5.0 发布,多项更新和体验优化
  3. MapInfo开发心得——多地图关联篇【转】
  4. ROS 2 index翻译(五)——关于ROS 2客户端库
  5. 【Java数据结构与算法】第十四章 红黑树
  6. 95-140-140-源码-transform-双流操作的实现
  7. [NOIP]2017列队——旋转treap/非旋转treap
  8. Java实现分页功能 代码很粗糙,都是根据自己所需去定义逻辑功能的。
  9. POJ 2457 BFS
  10. VSCode使用记录一:ubuntu 16.04下安装、编译文件、制作桌面图标和卸载
  11. java判断读到末尾_Java 中的运算符和流程控制
  12. 海外并购频频被阻 中国芯发展之路困难重重
  13. jieba基本使用过程
  14. Fedora 10 下编译安装 Libfetion 玩飞信
  15. 老司机教你如何优雅地完成一个小项目测试
  16. 使用chrome浏览器打开微信页面配置方式
  17. Windows系统安全检查脚本
  18. 从懵逼到再入门——JavaEE完整体系架构
  19. UC伯克利马毅教授于2021年2月23日发的微博
  20. SSM实现登录注册的小案例(手把手喂饭)

热门文章

  1. day21 re模块
  2. 用mongols轻松打造websocket应用
  3. ruby开发以太坊智能合约
  4. 【Todo】已经打开的页面需要清掉的坑
  5. javascript模式 (3)——工厂模式和装饰模式
  6. Bloodshed Dev-C++
  7. RegSetValueEx 计算WCHAR字符长度 wcslen
  8. 巧妙排查 揪出堵塞网络通信的祸首
  9. 学用NHibernate(一)
  10. SEO网站外链优化大全