链接: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(" ");}
}

恩尼格玛机(字母转换,水题)相关推荐

  1. python编程挑战——使用python实现恩格玛机(1)

    想起一个好玩的事情,使用python来实现德军在二战时加密的设备--恩格玛机. 那么什么是恩格玛机,他是怎么工作的?这篇文章提供了很详细的说明: https://www.zhihu.com/quest ...

  2. Python实现恩尼格玛加密算法——附完整源码

    Python实现恩尼格玛加密算法--附完整源码 恩尼格玛是第二次世界大战中德国所使用的复杂电机械式密码机.它被认为是世界上最复杂的加密设备之一.在这个项目中,我们将使用Python模拟实现恩尼格玛加密 ...

  3. 单表恩格玛机的源码实现

    最近看了一部电影,叫<模仿游戏>,主要讲的就是二战期间图灵破解德军通讯密码的故事,最后的意义是导致二战提前两年结束,拯救了至少1400万人的生命.然后自己一时兴起就写了一个单表随机排列的恩 ...

  4. 1251: 字母图形 [水题]

    1251: 字母图形 [水题] 时间限制: 1 Sec 内存限制: 128 MB 提交: 140 解决: 61 统计 题目描述 利用字母可以组成一些美丽的图形,下面给出了一个例子: ABCDEFG B ...

  5. NUC1422 字母旋转游戏【水题】

    字母旋转游戏 时间限制: 1000ms 内存限制: 65535KB 通过次数: 2总提交次数: 5 问题描述 给定两个整数M,N,生成一个M*N的矩阵,矩阵中元素取值为A至Z的26个字母中的一个,A在 ...

  6. 《华为机试》刷题之HJ84 统计大写字母个数

    <华为机试>刷题之统计大写字母个数 我不知道将去向何方,但我已在路上! 时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! 题目: 找出给定字符串中大写字符(即'A'-' ...

  7. zcmu之水题来一波~

    1036: Shepherd 1112: 对于数字的强迫症 1137: 最后一次队内赛的a+b 1278: Sequence(哈希) 1279: Sort photos(读题) 1653: 这样真的好 ...

  8. zcmu-1653,1654...【水题集合】

    1653: 这样真的好么(*^*) Description 在某人参加的某一场比赛中,一共有k位选手参赛,他们的编号是1到k.主办方准备了n个气球,主办方同样把这n个气球随机的编号为1到k中的一个数( ...

  9. P,MTHBGWB 水题

    今天遇到一道特别恶心的水题,可能是我水平太low,居然用了好久的时间!不过主要是用在看懂题意上了,英文题目好长,好恶心啊!!题目如下: Description Morse code represent ...

  10. 【超级完整】北京理工大学计算机复试机试历年真题答案2003年-2018年

    本人已经把该博客代码部分整理,在另一篇博客中: [超级完整-更正版]北京理工大学计算机专业复试机试历年真题答案2003年-2018年 目 录 1-2003两个空间坐标求球的体积 1 2-2003计算某 ...

最新文章

  1. Javascript是否通过引用传递?
  2. java 防止文件下载_Spring,Java:流式文件下载以避免内存不足错误
  3. Android http通信案例
  4. Android中SearchView修改字体颜色
  5. swift php 类型判断,iOS开发 - Swift实现检测网络连接状态及网络类型
  6. mac osx 10.10 pip 安装问题
  7. 【转】可道云kodexplorer搭建私有云后的配置优化
  8. 0.Overview
  9. php 中 app cookie管理,详解iOS App开发中Cookie的管理方法
  10. 4g模块注册上网 移远_物联网模组龙头移远通信
  11. 结对-结对编项目作业名称-设计文档
  12. WinForm后台任务(定时任务)传递消息给主窗体并更新主窗体文本框内容
  13. 拓扑排序:LC 207. 课程表 210. 课程表 II
  14. Smart 3D 切块合并 使用S3C索引 excel表格法
  15. UE破解及注册机下载
  16. matlab绘制符号函数的ezplot函数
  17. 10行代码实现抽奖助手自动参与抽奖
  18. 攻防技术第一篇之-知彼(攻击手段)
  19. win10更改user用户名(win10更改user用户名文件夹已在另一个文件中已打开)
  20. 公司名称注册,公司名称查询,企业名称注册事项

热门文章

  1. 【淘宝商家应用接口】拼多多平台流量解析,如何充分利用平台分配的流量?
  2. 移植MPlay到mini2440开发板
  3. Redis的读写分离
  4. 游戏美术基础(一):游戏贴图
  5. 分布式系统的SLA如何定义
  6. Mac环境安装Win虚拟机
  7. Android Studio下运行开源项目9GAG遇到的问题
  8. 车,让你高效的高效工作,快乐生活
  9. 《稻盛和夫经营学》读后感心得体会3180字范文
  10. iOS 导航栏透明度 监听导航栏返回进度