快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

【C语言】反序加密(非文件)-创新互联

算法集训传送门》   👉引言

在这里插入图片描述

创新互联服务项目包括蜀山网站建设、蜀山网站制作、蜀山网页制作以及蜀山网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,蜀山网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到蜀山省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
铭记于心
🎉✨🎉我唯一知道的,便是我一无所知🎉✨🎉

💖 ❄️我们的算法之路❄️💖

   众所周知,作为一名合格的程序员,算法 能力是不可获缺的,并且在算法学习的过程中我们总是能感受到算法的✨魅力✨。
              ☀️🌟短短几行代码,凝聚无数前人智慧;一个普通循环,即是解题之眼🌟☀️
   💝二分,💝贪心,💝并查集,💝二叉树,💝图论,💝深度优先搜索(dfs),💝宽度优先搜索(bfs),💝数论,💝动态规划等等, 路漫漫其修远兮,吾将上下而求索! 希望在此集训中与大家共同进步,有所收获!!!🎉🎉🎉

在这里插入图片描述


一、💎【问题描述】💎

有一种加密方法为:其使用一个字母串(可以含重复字母,字母个数不超过50)作为密钥。假定密钥单词串为feather,则先去掉密钥单词中的重复字母得到单词串feathr,然后将其反序,并将字母表中的其它字母以反序追加到后面:

r h t a e f z y x w v u s q p o n m l k j i g d c b
加密字母的对应关系如下:

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
r h t a e f z y x w v u s q p o n m l k j i g d c b
其中第一行为原始英文字母,第二行为对应加密字母。其它字符不进行加密。编写一个程序,用这种密码加密输入的字符串。假定输入的待加密字符串中的字母全为小写字母,并且输入密钥也全为小写字母。

【输入形式】

从标准输入中输入密钥串,然后在下一行输入要加密的字符串。密钥串字母个数不超过50个,待加密字符串的字符数不超过100个。

【输出形式】

加密后结果输出到标准输出。

【样例输入】

feather
c language is wonderful.

【样例输出】

t urqzjrze xl gpqaemfju.

【样例说明】

首先将给定的密钥单词去除重复字母并反序,然后按照上面的加密对应表对后面的内容进行加密即可得到加密后的字符串,其中只对英文字母进行加密对换,并且假设英文字母全是小写字母。

💎二、思路详解💎

大致思路如下:

  1. 首先按照题目中的规律处理输入的字符串,得到加密秘钥(具体就是字符串去重,然后反转,再把剩下字母表中得字母加进来)
  2. 接下来就是根据输入得到输出(与字母表对应,直接用类似于哈希表进行)
💎三、代码呈现💎
#includeint main() {char str[100], pwd[28];
	int flag[266] = {0 };
	scanf("%s", str);
	flag[str[0]] = 1;
	int index = 1, index2 = 0;
	for (int i = 1; i< strlen(str); i++) {int f = 0;
		for (int j = i - 1; j >= 0; j--) {	if (str[j] == str[i])f = 1;
		}
		if (!f) {	str[index++] = str[i];
			flag[str[i]] = 1;
		}
	}
	str[index] = '\0';
	for (int i = index - 1; i >= 0; i--) {pwd[index2++] = str[i];
	}
	for (int i = 25; i >= 0; i--) {if (!flag['a' + i])pwd[index2++] = 'a' + i;
	}
	pwd[index2++] = '\0';
	char reqAns[1024];
	getchar();
	gets(reqAns);
	for (int i = 0; i< strlen(reqAns); i++) {if (isalpha(reqAns[i]))
			printf("%c", pwd[reqAns[i] - 'a']);
		else
			printf("%c", reqAns[i]);
	}

	return 0;
}

🌹写在最后💖:
相信大家对今天的集训内容的理解与以往已经有很大不同了吧,或许也感受到了算法的魅力,当然这是一定的,路漫漫其修远兮,吾将上下而求索!伙伴们,明天见!🌹🌹🌹在这里插入图片描述

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享文章:【C语言】反序加密(非文件)-创新互联
本文URL:http://6mz.cn/article/dcepos.html

其他资讯