uva 1339 题解
这道题就是统计各个字母出现的次数是否相等。
#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 题解相关推荐
- UVA - 1339 Ancient Cipher
Ancient Cipher UVA - 1339 题目传送门 解决方法:模拟一下转换过程即可. AC代码: #include <cstdio> #include <iostream ...
- UVa 1339,紫书P73,词频
题目链接:https://uva.onlinejudge.org/external/13/1339.pdf 紫书P73 解题报告: #include <stdio.h> #include ...
- 【ACM】UVa 1339
[题目]:给定两个长度相同且不超过100的字符串,判断是否能把其中一个字符串的各个字母重排,然后对26个字母做一一映射,使得两个字符串相同.输入两个字符串,输出"YES"或者&qu ...
- 《算法竞赛入门经典》 例题 4-1 古老的密码(Ancient Cipher) UVa 1339
题目描述 给定两个长度相同且不超过100的字符串,判断是否能把其中一个字符串的各个字母重排,然后对26个字母做一个一一映射,使得两个字符串相同. 例如,JWPUDJSTVP重排后可以得到WJDUPSJ ...
- (精讲)UVA - 1339 Ancient Cipher 刘汝佳紫书题单(算法竞赛入门经典)
仔细读题并且对比样例可以发现,字母的替换和换元的规律是不同的,所以不能用模拟法将原来的字符串找到进行比对,所以要从替换换元前后的特点来看. 替换: 替换前后的两个字母集合可以看作是一个映射: 例如 H ...
- Ancient Cipher UVA - 1339 古老的密码
题目链接 给定两个长度相同且不超过100的字符串,判断是否能把其中一个字符串的各个字母重排,然后对26个字母做一个一一映射,使得两个字符串相同.例如,JWPUDJSTVP重排后可以得到WJDUPSJP ...
- UVA 1339(古老的密码)
坑人的题意呀,翻译半天没翻译懂,看了看紫书,题意也是模模糊糊. 推了推输入输出,得到了大概的题意. 题目大意:给定两个长度相同且不超过100个字符的字符串,判断能否把其中一个字符串重排后,然后对26个 ...
- 例题 4-1 古老的密码(Ancient Cipher) UVa 1339
题目:古老的密码 题目描述: 给定两个长度一样且不超过100的字符串,判断是否能把其中一个字符串的各个字母重排,之后对26个字母做一个一一映射,使得两个字符串相同 例如,JWPUDJSTVP重排后可以 ...
- 矩阵模板hdu5015,UVA 10655,UVA 11149
hdu5015 n是<=10的,可以想到点什么,, 构造矩阵mat[n+2][n+2] 发现mat*a是答案矩阵第1列 mat的m次方再乘a就是答案矩阵的第m列,取最下面的就行了 这板不错 #i ...
- UVa1339 Ancient Cipher(贪心算法)
问题:有一个混合加密算法,通过替换和排列将原字符串加密成另外一个字符串.给出两个字符串,问是否可以从原串转为另外一串 思路: 因为是通过文字替换后,替换前后的字符计数是不变的.而通过排列方式只是改变了 ...
最新文章
- css 商城 两列_如何使用css伪元素实现超实用的图标库(附源码)
- jSearch(聚搜) v0.5.0 发布,多项更新和体验优化
- MapInfo开发心得——多地图关联篇【转】
- ROS 2 index翻译(五)——关于ROS 2客户端库
- 【Java数据结构与算法】第十四章 红黑树
- 95-140-140-源码-transform-双流操作的实现
- [NOIP]2017列队——旋转treap/非旋转treap
- Java实现分页功能 代码很粗糙,都是根据自己所需去定义逻辑功能的。
- POJ 2457 BFS
- VSCode使用记录一:ubuntu 16.04下安装、编译文件、制作桌面图标和卸载
- java判断读到末尾_Java 中的运算符和流程控制
- 海外并购频频被阻 中国芯发展之路困难重重
- jieba基本使用过程
- Fedora 10 下编译安装 Libfetion 玩飞信
- 老司机教你如何优雅地完成一个小项目测试
- 使用chrome浏览器打开微信页面配置方式
- Windows系统安全检查脚本
- 从懵逼到再入门——JavaEE完整体系架构
- UC伯克利马毅教授于2021年2月23日发的微博
- SSM实现登录注册的小案例(手把手喂饭)