#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
char a[1100],b[1100],c[1100],d[1100];//密文,原文,要解密文,解密文
int len,len1,i,j,ret=0;//ret用来表示是否符合规范不符合就ret=-1;
gets(a);
gets(b);//输入
gets(c);
len=strlen(a),len1=strlen(c);//分别的长度
char s[27]={'\0'};   int y[27]={0};
for(i=0;i<len;i++)
{y[b[i]-'A']=1;//统计字母 }
for(i=0;i<26;i++)
{if(y[i]==0){//是否出现没出现的字母 ret=-1;}
}
for(i=0;i<len;i++)
{
for(j=i+1;j<len;j++){if(b[i]!=b[j]&&a[i]==a[j]){//一个原文字符只能对应一个密文 ret=-1;}if(b[i]==b[j]&&a[i]!=a[j]){//一个字符的密文是唯一的 ret=-1;}
}}
for(i=0;i<len;i++)
{s[a[i]-'A']=b[i];//每个字符对应的解
}for(i=0;i<27;i++){for(j=i+1;j<27;j++){if(s[i]!='\0'&&s[i]==s[j]){  //解的唯一性或者解不存在 ret=-1;break;}}}for(i=0;i<len1;i++){if(s[c[i]-'A']=='\0'){ret=-1;//如果解不存在就ret=-1; break;}else{d[i]=s[c[i]-'A'];//开始解密一一对应 ,存储到d中; }}if(ret==-1){printf("Failed\n");//不合规范}else if(ret==0){//合规范打印//printf("%s",d);for(i=0;i<len1;i++){if(d[i]!='\0')printf("%c",d[i]);//打印 ,也可以用scanf("%s",d); }}

这道题需要注意3点

1.原文中必须要有26个大写字母

2.一个原文字符对应一个密文字符且密文字符的解是唯一的

3.不能2个相同原文字符的解不一样,解与原文的关系是一对一,一个原文字符只能有一个解(这个是对第二条的解释)

ac了

「NOIP2009」潜伏者相关推荐

  1. 如何直观地理解「协方差矩阵」?

    如何直观地理解「协方差矩阵」? Xinyu Chen Urban Traffic Data Analytics 372 人赞同了该文章 协方差矩阵在统计学和机器学习中随处可见,一般而言,可视作方差和协 ...

  2. 消除左递归实验代码_「leetcode」108. 构造二叉搜索树【递归】【迭代】详解!

    构造二叉搜索树,一不小心就平衡了 ❞ 108.将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树 ...

  3. 不带头节点的链表有哪些缺点_23张图!万字详解「链表」,从小白到大佬!

    链表和数组是数据类型中两个重要又常用的基础数据类型. 数组是连续存储在内存中的数据结构,因此它的优势是可以通过下标迅速的找到元素的位置,而它的缺点则是在插入和删除元素时会导致大量元素的被迫移动,为了解 ...

  4. 一位老码农的分享:一线程序员该如何面对「中年危机」?

    如果这是第二次看到我的文章,欢迎文末扫码订阅我个人的公众号(跨界架构师)哟~   本文长度为2728字,建议阅读8分钟. 坚持原创,每一篇都是用心之作- 先来聊一下这个问题的背景吧. 前两天有小伙伴问 ...

  5. 机器人 Ameca「苏醒」瞬间逼真到令人恐惧,网友纷纷惊叹……

    整理 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 近日,国内外网友都被一段机器人「苏醒」的视频惊讶到. 视频开始时,机器人似乎已经睡着,眼睛闭着,头部略微向下倾斜.随着肩膀的伸展 ...

  6. AI 复活「她」! GPT-3 帮美国小哥复刻逝去未婚妻,但又夺走她……

    整理 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 今年 7 月,一名33岁的美国小哥 Joshua Barbeau 在未婚妻去世后,根据她在 Facebook 和 twitter ...

  7. OpenAI 以 10 亿美元出售「灵魂」,网友热评不再「Open」

    编译 | 禾木木 出品 | AI科技大本营(ID:rgznai100) OpenAI 如何以 10 亿美元的价格出售其灵魂:GPT-3 和 Codex 背后的公司并不像它声称的那样开放. 当金钱成为障 ...

  8. 「软件」2.0时代已经到来,你需要这样的开发工具

    互联网催生了软件的繁荣,而在AI浪潮的推动下,软件正在朝着更「智能」的方向发展,也就是「软件2.0」时代.「软件2.0」其实就是神经网络,也就是这一波AI浪潮的基石. 在「软件1.0」时代,程序员用J ...

  9. 嵌入式开发「坑」太多?MathWorks 高级工程师教你 debug

    文/ 朱雪妍 据博思数据发布的<2018-2023年中国嵌入式软件行业市场发展现状调研与投资趋势前景分析报告>表明:2018年上半年我国嵌入式系统软件收入达4240.2亿元,累计增长6.6 ...

最新文章

  1. rhel6编译ssh的src.rpm包并修改spec参数
  2. django ContentType使用方法
  3. cross_val_score 如何对孤立森林_【收藏】森林防火手抄报素材汇总!
  4. mysql时长用什么类型_MySQL 日期时间类型怎么选?千万不要乱用!
  5. Go语言编程:Go语言实现快速排序算法
  6. 学习编程的方法与建议
  7. explain mysql ref_MySQL explain详解
  8. java fseek_无法使用fseek(C)浏览文件
  9. NumPy 文件存取 tofile,fromfile, load,save
  10. Adaboost Random Forests 等机器学习方法 搜索热度
  11. 关于 red bend
  12. 自由-进化/开源中国众包平台
  13. matlab三维绘图
  14. 360路由器故障显示DNS服务器,360安全路由器dns异常解决方法
  15. 更上一层楼,数学是基础——渐近线和可分离变量微分方程
  16. 接入微信自定义版交易组件3.0,小程序对接视频号操作说明
  17. 用计算机自我介绍,计算机简单的自我介绍
  18. MOSFET管(MOS管)基础
  19. 基于java实现下载excel
  20. 针对局域网IM飞秋(feiq)的开发总结

热门文章

  1. C3P0的三种使用方法
  2. gearhost php,美国免费稳定全能空间:GearHost
  3. excel转换成PDF的软件
  4. 【它山之玉】人生的自然法则-科学网马臻
  5. flash mx拖拽实例_集成Flash MX 2004和Director MX 2004
  6. 产品经理如何做好项目介绍?
  7. python中素数的求法_Python多种方法求某个范围内的所有素数(质数)
  8. 定义一个判断素数的函数
  9. 获取系统中已经安装的文字输入法
  10. 最简单的函数,看看就会了