题目描述
R国和 S国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动。历尽艰险后,潜伏于 S国的 R 国间谍小 C终于摸清了 S 国军用密码的编码规则:

1. S 国军方内部欲发送的原信息经过加密后在网络上发送,原信息的内容与加密后所得的内容均由大写字母‘A’-‘Z’构成(无空格等其他字符)。

2. S S国对于每个字母规定了对应的“密字”。加密的过程就是将原信息中的所有字母替换为其对应的“密字”。

3. 每个字母只对应一个唯一的“密字”,不同的字母对应不同的“密字”。“密字”可以和原字母相同。

例如,若规定‘A’的密字为‘A’,‘B’的密字为‘C’(其他字母及密字略),则原信息“ABA”被加密为“ACA”。

现在,小 C 通过内线掌握了 S 国网络上发送的一条加密信息及其对应的原信息。小 CC希望能通过这条信息,破译 S 国的军用密码。小 C 的破译过程是这样的:扫描原信息,对于原信息中的字母 x(代表任一大写字母),找到其在加密信息中的对应大写字母 y,并认为在密码里 y是 x的密字。如此进行下去直到停止于如下的某个状态:

1. 所有信息扫描完毕,‘A’-‘Z’ 所有 26个字母在原信息中均出现过并获得了相应的“密字”。

2. 所有信息扫描完毕,但发现存在某个(或某些)字母在原信息中没有出现。

3. 扫描中发现掌握的信息里有明显的自相矛盾或错误(违反 S 国密码的编码规则)。例

如某条信息“XYZ”被翻译为“ABA”就违反了“不同字母对应不同密字”的规则。

在小 C 忙得头昏脑涨之际,R 国司令部又发来电报,要求他翻译另外一条从 S国刚刚截取到的加密信息。现在请你帮助小 C:通过内线掌握的信息,尝试破译密码。然后利用破译的密码,翻译电报中的加密信息。

输入输出格式
输入格式:
共 3 行,每行为一个长度在 1 到 100之间的字符串。

第 1 行为小 C 掌握的一条加密信息。

第 2 行为第 1 行的加密信息所对应的原信息。

第 3行为 R国司令部要求小 C 翻译的加密信息。

输入数据保证所有字符串仅由大写字母‘A’-‘Z’构成,且第 1行长度与第 2行相等。

输出格式:
共 1 行。

若破译密码停止时出现 2,3 两种情况,请你输出“Failed”(不含引号,注意首字母大

写,其它小写)。

否则请输出利用密码翻译电报中加密信息后得到的原信息。

输入输出样例
输入样例#1: 复制
AA
AB
EOWIE

输出样例#1:
Failed
输入样例#2:
QWERTYUIOPLKJHGFDSAZXCVBN
ABCDEFGHIJKLMNOPQRSTUVWXY
DSLIEWO
输出样例#2:
Failed
输入样例#3:
MSRTZCJKPFLQYVAWBINXUEDGHOOILSMIJFRCOPPQCEUNYDUMPP
YIZSDWAHLNOVFUCERKJXQMGTBPPKOIYKANZWPLLVWMQJFGQYLL
FLSO
输出样例#3:
NOIP
说明
【输入输出样例 1 1说明】

原信息中的字母‘AA’和‘BB’对应相同的密字,输出“Failed”。

【输入输出样例 2 2说明】

字母‘Z’在原信息中没有出现,输出“Failed”。

NOIP 2009 提高组 第一题

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;public class qianfuzhe {public static void main(String[] args) {boolean flag = false;Map<Character,Character> map = new HashMap<Character,Character>();Scanner sc =new Scanner(System.in);String s = sc.nextLine();String ss = sc.nextLine();String sss = sc.nextLine();sc.close();char [] num1 = s.toCharArray();char [] num2 = ss.toCharArray();char [] num3 = sss.toCharArray();for (int i = 0; i < num2.length; i++) {if(num1[i]==' ') continue;if(map.containsKey(num1[i]) && map.get(num1[i])!=num2[i]){flag=true;}map.put(num1[i], num2[i]);}Set<Character> set2=map.keySet();Set<Character> set1 = new HashSet<Character> (map.values());if(set1.size()!=26 ||set2.size()!=26 ){flag=true;}if(flag){System.out.println("Failed");System.exit(0);}String str = "";for (int i = 0; i < num3.length; i++) {if(num3[i]==' ') continue;Character s1 = map.get(num3[i]);str = str + s1;}System.out.println(str);}}

(Java实现) 洛谷 P1071 潜伏者相关推荐

  1. 洛谷P1071 潜伏者 字符串

    洛谷P1071 潜伏者 字符串 题意 给出一段密文,在给出一段明文,再给出一段密文,要求破译这段密文, 如果错误的话就输出 Failed 错误有一下几种 密文中A--Z 没有全部出现 明文中A--Z ...

  2. 洛谷 P1071 潜伏者

    P1071 潜伏者 题目描述 R 国和 S 国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历尽艰险后,潜伏于 S 国的 R 国间谍小 C 终于摸清了 S 国军用密码的编码规则: 1. S ...

  3. 洛谷——P1071 潜伏者

    题目描述 RR国和SS国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历尽艰险后,潜伏于SS国的RR 国间谍小CC终于摸清了 SS 国军用密码的编码规则: 1. SS国军方内部欲发送的原信息 ...

  4. 信息学奥赛一本通 1855:【09NOIP提高组】潜伏者 | OpenJudge NOI 1.7 11:潜伏者 | 洛谷 P1071 [NOIP2009 提高组] 潜伏者

    [题目链接] ybt 1855:[09NOIP提高组]潜伏者 OpenJudge NOI 1.7 11:潜伏者 洛谷 P1071 [NOIP2009 提高组] 潜伏者 [题目考点] 1. 字符串 2. ...

  5. Java实现洛谷 P1428 小鱼比可爱

    题目描述 人比人,气死人:鱼比鱼,难死鱼.小鱼最近参加了一个"比可爱"比赛,比的是每只鱼的可爱程度.参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只 ...

  6. 潜伏者与谍报密码(洛谷P1071题题解,Java语言描述)

    题目要求 P1071题目链接 分析 这道题其实要构建唯一的双射,开始没读明白,写出了下面的代码: import java.util.HashMap; import java.util.Map; imp ...

  7. 潜伏者(洛谷-P1071)

    题目描述 R 国和 S 国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历尽艰险后,潜伏于 S 国的 R 国间谍小 C 终于摸清了 S 国军用密码的编码规则: 1. S 国军方内部欲发送的原 ...

  8. AC日记——潜伏者 洛谷 P1071 (模拟)

    题目描述 R 国和 S 国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历尽艰险后,潜伏于 S 国的 R 国间谍小 C 终于摸清了 S 国军用密码的编码规则: 1. S 国军方内部欲发送的原 ...

  9. Java实现 洛谷 P1064 金明的预算方案

    题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过NN元 ...

最新文章

  1. python学习day24 继承 派生
  2. 使用功能开关更好地实现持续部署
  3. CentOS 6.8 安装 RabbitMQ
  4. java五子棋以当前空位为中心 取9个点_java 五子棋有点问题,哪位帮忙破一下、、...
  5. [jQuery]点击某元素之外触发事件
  6. 火爆 GitHub 的 16 张机器学习速查表,值得收藏!
  7. 连接CPU和计算机的总线,什么是计算机总线 总线和接口的区别
  8. 查询附近的人——GEO
  9. mediasoup 安裝
  10. php中颜色的索引值,PHP imagecolorsforindex - 取得某索引的颜色
  11. PowerPC 汇编
  12. 88页《Redis学习文档》,从入门到精通,看这一篇就足够
  13. RPA案例 | 电商使用超自动化平台提升运营精细化
  14. 详解文件存储空间管理中的位示图法
  15. 太用力的人跑不远[致刚毕业奋斗的自己,永不止步]
  16. Eclipse配置Python的IDE
  17. ThreadLocal.withInitial
  18. python 对角矩阵_numpy创建单位矩阵和对角矩阵的实例
  19. m1芯片安装PS2021 已经支持M1芯片安装 M1处理器安装PS2021解决方案教程,2021最新方法!
  20. end-end是什么

热门文章

  1. 第50讲-基础练习-作业讲解
  2. oracle hibernate 主键,hibernate oracle 主键 自增
  3. anaconda怎么设置中文界面?anaconda设置中文界面技巧
  4. [超详细]MySQL本地版本升级(从5.5.20到8.0.21)
  5. 后台服务出现明显“变慢”诊断思路
  6. js给input赋值无效的问题
  7. 迅为i.MX6Q开发板快速上手【必看】
  8. 【设计模式自习室】透彻理解单例模式
  9. java毕业生设计抑郁症患者博客交流平台计算机源码+系统+mysql+调试部署+lw
  10. 关于iOS证书申请及安装流程