一、题目描述
给你一串未加密的字符串str,通过对字符串的每一个字母进行改变来实现加密,加密方式是在每一个字母str[i]偏移特定数组元素a[i]的量,数组a前三位已经赋值:a[0]=1,a[1]=2,a[2]=4。
当i>=3时,数组元素a[i]=a[i-1]+a[i-2]+a[i-3]。
例如:原文 abcde 加密后 bdgkr,其中偏移量分别是1,2,4,7,13。
二、输入描述
第一行为一个整数n(1<=n<=1000),表示有n组测试数据,每组数据包含一行,原文str(只含有小写字母,0<长度<=50)。
三、输出描述
每组测试数据输出一行,表示字符串的密文。
四、测试用例
1、输入
2
a
z
2、输出
b
a
3、说明
‘a’ +1 -> ‘b’
‘z’ +2 -> ‘b’ (但是因为偏移量为2, ‘z’ +2 = ‘b’)
五、解题思路
题目很简单,多读几遍,其义自见。
我的做题思路是:
- 先找出最长的字符串,初始化偏移量集合numList,比如[1,2,4,7,13];
- 遍历每
本文介绍了华为OD机试2023B卷的一道字符串加密题目,详细解析了加密方法:每个字母根据特定偏移量进行变化。文章提供了解题思路、Java算法源码和效果展示,帮助读者理解并实现字符串加密过程。
订阅专栏 解锁全文
5334

被折叠的 条评论
为什么被折叠?



