恩尼格玛机(字母转换,水题)
链接:https://ac.nowcoder.com/acm/contest/33785/C
来源:牛客网
你顺利入了城,看见了古老的恩尼格玛机。
恩尼格玛机(Enigma Machine)是第二次世界大战期间德国使用的信息加解密设备,其每次 Reflector 过程定义如下:
输入一个大写字母;
根据转换关系,输出该字母对应的输出字母。
其中的转换关系通过131313个字符对(共262626个字母,其中两两不重复)给出。
以下是一次 Reflector 过程的举例:
对输入的一段字符串 “ABC“,假定存在转换关系 A-B 和 C-D,则其对应的输出字符串为 ”BAD''。
你需要实现一个 Reflector 模块,在给定一系列转换关系的情况下,对每个输入的字符串,给出其对应的输出字符串。
输入数据保证:
每个字符串长度 ∣s∣≤255;
所有字符串总长度 ∑∣s∣≤10^5;
所有字符串中仅包含大写字母。
输入描述:第一行包含262626个不重复大写字母,以空格分隔,其中第2i−1和2i个字母表示一对转换关系 (1≤i≤13)。
第二行包含一个整数k(1≤k≤10^5),表示输入的字符串个数。
接下来一行包含k个由空格分隔的非空字符串。
输出描述:仅一行,表示每个输入字符串对应的输出结果,字符串间以空格分隔。
示例1
输入复制A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
4
ABC QWQ HELLO WORLD
输出
BAD RXR GFKKP XPQKC、
AC代码
(不知道当时咋想的,过了,现在看看感觉有的地方可能不对,又不知道,奇了怪了。有兴趣的同学可以在讨论区说下)
#include<stdio.h>
char s1[100], s2[260];
void qk()
{int i = 1;while (s1[i] == ' '&&i<=strlen(s1)){for (int j = i; j < strlen(s1); j++){s1[j] = s1[j + 1];}i++;}
}int main()
{int i, n;gets(s1);qk();scanf("%d", &n);for (int j = 1; j <= n; j++){scanf("%s", s2);for (int k = 0; k < strlen(s2); k++){for (i = 0; i < 13; i++){if (s2[k] == s1[2 * i])s2[k] = s1[2 * i+1];else if (s2[k] == s1[2 * i+1])s2[k] = s1[2 * i];}printf("%c", s2[k]);}printf(" ");}
}
恩尼格玛机(字母转换,水题)相关推荐
- python编程挑战——使用python实现恩格玛机(1)
想起一个好玩的事情,使用python来实现德军在二战时加密的设备--恩格玛机. 那么什么是恩格玛机,他是怎么工作的?这篇文章提供了很详细的说明: https://www.zhihu.com/quest ...
- Python实现恩尼格玛加密算法——附完整源码
Python实现恩尼格玛加密算法--附完整源码 恩尼格玛是第二次世界大战中德国所使用的复杂电机械式密码机.它被认为是世界上最复杂的加密设备之一.在这个项目中,我们将使用Python模拟实现恩尼格玛加密 ...
- 单表恩格玛机的源码实现
最近看了一部电影,叫<模仿游戏>,主要讲的就是二战期间图灵破解德军通讯密码的故事,最后的意义是导致二战提前两年结束,拯救了至少1400万人的生命.然后自己一时兴起就写了一个单表随机排列的恩 ...
- 1251: 字母图形 [水题]
1251: 字母图形 [水题] 时间限制: 1 Sec 内存限制: 128 MB 提交: 140 解决: 61 统计 题目描述 利用字母可以组成一些美丽的图形,下面给出了一个例子: ABCDEFG B ...
- NUC1422 字母旋转游戏【水题】
字母旋转游戏 时间限制: 1000ms 内存限制: 65535KB 通过次数: 2总提交次数: 5 问题描述 给定两个整数M,N,生成一个M*N的矩阵,矩阵中元素取值为A至Z的26个字母中的一个,A在 ...
- 《华为机试》刷题之HJ84 统计大写字母个数
<华为机试>刷题之统计大写字母个数 我不知道将去向何方,但我已在路上! 时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! 题目: 找出给定字符串中大写字符(即'A'-' ...
- zcmu之水题来一波~
1036: Shepherd 1112: 对于数字的强迫症 1137: 最后一次队内赛的a+b 1278: Sequence(哈希) 1279: Sort photos(读题) 1653: 这样真的好 ...
- zcmu-1653,1654...【水题集合】
1653: 这样真的好么(*^*) Description 在某人参加的某一场比赛中,一共有k位选手参赛,他们的编号是1到k.主办方准备了n个气球,主办方同样把这n个气球随机的编号为1到k中的一个数( ...
- P,MTHBGWB 水题
今天遇到一道特别恶心的水题,可能是我水平太low,居然用了好久的时间!不过主要是用在看懂题意上了,英文题目好长,好恶心啊!!题目如下: Description Morse code represent ...
- 【超级完整】北京理工大学计算机复试机试历年真题答案2003年-2018年
本人已经把该博客代码部分整理,在另一篇博客中: [超级完整-更正版]北京理工大学计算机专业复试机试历年真题答案2003年-2018年 目 录 1-2003两个空间坐标求球的体积 1 2-2003计算某 ...
最新文章
- Javascript是否通过引用传递?
- java 防止文件下载_Spring,Java:流式文件下载以避免内存不足错误
- Android http通信案例
- Android中SearchView修改字体颜色
- swift php 类型判断,iOS开发 - Swift实现检测网络连接状态及网络类型
- mac osx 10.10 pip 安装问题
- 【转】可道云kodexplorer搭建私有云后的配置优化
- 0.Overview
- php 中 app cookie管理,详解iOS App开发中Cookie的管理方法
- 4g模块注册上网 移远_物联网模组龙头移远通信
- 结对-结对编项目作业名称-设计文档
- WinForm后台任务(定时任务)传递消息给主窗体并更新主窗体文本框内容
- 拓扑排序:LC 207. 课程表 210. 课程表 II
- Smart 3D 切块合并 使用S3C索引 excel表格法
- UE破解及注册机下载
- matlab绘制符号函数的ezplot函数
- 10行代码实现抽奖助手自动参与抽奖
- 攻防技术第一篇之-知彼(攻击手段)
- win10更改user用户名(win10更改user用户名文件夹已在另一个文件中已打开)
- 公司名称注册,公司名称查询,企业名称注册事项