题目:古老的密码

题目描述:

给定两个长度一样且不超过100的字符串,判断是否能把其中一个字符串的各个字母重排,之后对26个字母做一个一一映射,使得两个字符串相同

例如,JWPUDJSTVP重排后可以得到WJDUPSJPVT,之后把每个字母映射到它的前面一个字母,得到VICTORIOUS,输入两个字符串,输出YES或者NO

题目分析:

因为字母可以重排,每个字母的位置并不重要,重要的是每个字母出现的次数

①统计两个字符串每个字母出现的次数,得到两个数组cnt1[26],cnt2[26]

②之后我们排序下,排序之后结果相同,说明我们输入的两个字符串就可以通过重排一一映射变得相同了所以本道题的核心在与【排序】

(可以理解为映射可以有无穷多种方式,但是无论哪一种方式同一个字符的映射方式是相同的,所以要想映射结果相同,那么两字符串中相同字符的数量必然要相同)

实现:

#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;int cmp(int a, int b){return a < b;}
int main(){string s,t;int cnt1[26], cnt2[26];while(cin >> s >> t){int len = s.length();memset(cnt1, 0, sizeof(cnt1));memset(cnt2, 0, sizeof(cnt2));    for(int i = 0; i < len; i++){cnt1[s[i]-'A']++; //统计不同字符数量 巧妙 cnt2[t[i]-'A']++;}sort(cnt1, cnt1+26, cmp);sort(cnt2, cnt2+26, cmp);int flag = 1;for(int i = 0; i < 26; i++ ){if(cnt1[i] != cnt2[i]){flag = 0;break;}}if(flag == 1)cout <<"YES\n";elsecout <<"NO\n";    }return 0;}

例题 4-1 古老的密码(Ancient Cipher) UVa 1339相关推荐

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

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

  2. 古老的密码(Ancient Cipher,UVa1339)(算法竞赛入门经典 例题4-1)C++

    题目:给定两个不超过100的字符串,判断是否可以做到将其中一个字符串通过重排和映射的操作,使得两个字符串相同.例如,JWPUDJSTVP重排后可以得到WJDUPSJPVT,然后每个字母只要通过一次映射 ...

  3. 算法竞赛入门经典 例题6-6 小球下落(python、C)

    同个人网站 https://www.serendipper-x.cn/,欢迎访问 ! 问题描述: 有一颗二叉树,最大深度为D,且所有叶子的深度都相同.所有结点从上到下从左到右编号为 1,2,3,- , ...

  4. 算法竞赛入门经典 例题6-2 铁轨(C、python)

    同个人网站 https://www.serendipper-x.cn/,欢迎访问 ! 问题描述: 某城市有一个火车站,铁轨铺设如图所示.有n节车厢从A方向驶入车站,按进站顺序编号为 1~n .你的任务 ...

  5. 算法竞赛入门经典 例题6-21

    UVa506 System Dependencies 编写程序实现类似Linux下的软件包管理器,其工作方式为: 可以通过命令显式安装组件,这个过程也可能隐式安装依赖组件 如果没有其它组件仍然依赖一个 ...

  6. 算法竞赛入门经典 例题6-16

    刷题荒废了一个多月,今日了却一件事情,把此题补上! UVa10129 Play on Words 有若干个圆盘,每个圆盘上都有一个单词,判断这些圆盘是否能排成一排,使得相邻圆盘的首尾字母相同. 3年前 ...

  7. C++ 刽子手游戏(Hangman Judge, UVa 489)(算法竞赛入门经典例题4-2)

    题目:刽子手游戏是一个简单的猜单词游戏,每次可以猜一个字母,如果单词内有这个字母,此单词内所有该字母都会显示,如果没有该字母,则记一笔错误,若满7笔错误,则输掉()猜已经猜出的单词也算错误).本题编写 ...

  8. Java实现算法竞赛入门经典例题-蚂蚁

    问题描述 一根长度为L厘米的木棍上有n只蚂蚁,每只蚂蚁要么朝左爬,要么朝右爬,速度为1厘米/秒. 当两只蚂蚁相撞时,二者同时掉头(掉头时间忽略不计). 给出每只蚂蚁的初始位置和朝向,计算T秒之后每只蚂 ...

  9. 例题4-1 UVA1339 古老的密码 Ancient Cipher

    输入两个串,问能不能按照一定规则映射.但是怎么映射没说,其实就是统计两个字符串各个字母出现的次数,然后分别对这两个次数序列排序,看看排完之后的两个序列是不是相同,就可以判断了, #include &l ...

最新文章

  1. 猫=图灵机?4项测试证明,「猫猫计算机」可执行任意计算
  2. 邓海建:让网约车成为智慧城市的“老司机”
  3. 溃不成军:科通芯城一度再跌近30% 股价三天腰斩
  4. jmeter HTTPS和HTTP的区别
  5. MySQL找出锁等待
  6. layui结合ajax实现下拉联动效果
  7. postgres 禁止远程登录_Windows 7禁止可移动存储设备写入数据,只有想不到,没有做不到...
  8. 字典排序什么意思_列表及字典的排序
  9. 【Sentry】为什么Cloudera要创建Hadoop安全组件Sentry?
  10. 3dmax如何显示参考图_3d效果图渲染丢材质、丢贴图该如何解决?
  11. 游戏玩家的图形显示设置指南(12)(The Gamer's Graphics Display Settings Guide)
  12. paip.提升用户体验与提升安全性----记住密码
  13. QuickServer开发指南(1)- 介绍
  14. 乌龟Git Permission denied
  15. STM32与XY12864屏幕(ST7920中文显示模块)
  16. python写连点脚本_python鼠标连点器-测试版
  17. 司空见惯 - 英雄扫雷鼠
  18. 给中国学生的第二封信:从优秀到卓越
  19. android脚本实现自动捉妖,一起来捉妖自动捉妖脚本使用教程ios00
  20. 输入参数varargin

热门文章

  1. 2021年安全员-C证最新解析及安全员-C证考试试题
  2. 前端:js实现接口回调
  3. 【按文分图工具】可以根据图片中的文字来批量自动分类的软件
  4. 征服者 游骑兵系列T117一体机最新款09年5月上市
  5. node.js运用命令npm install 卡住不动,并报错(个人遇到的坑)
  6. 基于JAVA学生信息管理系统录像演示2021计算机毕业设计源码+系统+数据库+lw文档+部署
  7. 多ROS机器人 系统管理平台的架构设计
  8. Linux miny选择字体,linux下sed命令对文件执行文本替换
  9. linux 文件按某列排序,sort如何按指定的列排序,linux按照指定列对文件排序
  10. Linux命令行学习之路(六)——重定向和管道