当前位置: 首页 > news >正文

华为OD真题--字符串加密

2023华为OD统一考试(A+B卷)题库清单-带答案(持续更新)or2023年华为OD真题机考题库大全-带答案(持续更新)

"给你一串未加密的字符串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,表示n组测试数据。每组数据包含一行,原文str(只含有小写字母)
例如:
输入
1
xy
输出
ya

public class StringEncrypt {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int stringLine = Integer.parseInt(sc.nextLine());String[]encrypts = new String[stringLine];for (int i = 0; i < stringLine; i++){encrypts[i] = sc.next();}String[] end1 = encryptMe(encrypts);Arrays.stream(end1).forEach(System.out::println);}public static String[] encryptMe(String[]encrypts){String[] end = new String[encrypts.length];StringBuffer sb = new StringBuffer();for (int i = 0; i < encrypts.length; i++){char[] t1 = encrypts[i].toCharArray();for (int j = 0; j < t1.length;j++){//计算偏移量int offset1 = offset(j);//生成字符char value = (char) ((int)t1[j] + offset1);if (value > 122){value = (char) ((int)t1[j] + offset1 - 26);}sb.append(value);}end[i] = sb.toString();sb.setLength(0);}return end;}/*** 偏移量计算* @param i* @return*/public static int offset(int i){if (i == 0){return 1;} else if (i == 1) {return 2;} else if (i == 2) {return 4;}else {return offset(i-1) + offset(i-2) + offset(i - 3);}}
}

http://www.lryc.cn/news/117852.html

相关文章:

  • UML-状态图
  • chrome插件开发实例07- Vue调试插件vue-devtools
  • HTML <span> 标签
  • 【PythonGIS】Python处理矢量数据的基本操作(查询、修改、删除、新建)
  • 15.2 【Linux】仅执行一次的工作调度
  • 时间复杂度与空间复杂度的详解
  • 每日一学:什么是 Harbor ?
  • 灰度均衡变换之c++实现(qt + 不调包)
  • flink1.17 自定义trigger ContinuousEventTimeTrigger
  • AIGC:【LLM(五)】——Faiss:高效的大规模相似度检索库
  • 自然语言处理从入门到应用——LangChain:记忆(Memory)-[记忆的类型Ⅱ]
  • 桥接模式-java实现
  • Linux systemd管理常用的几个小案例
  • 38、IPv6过渡技术
  • HMMER-序列分析软件介绍
  • 【项目学习1】如何将java对象转化为XML字符串
  • nginx负载均衡
  • 【毕业项目】自主设计HTTP
  • 关于安卓jar包修改并且重新发布
  • Java课题笔记~ AspectJ 对 AOP 的实现(掌握)
  • npm 报错 cb() never called!
  • finally有什么作用以及常用场景
  • Python web实战之Django URL路由详解
  • 10-数据结构-队列(C语言)
  • 面试之快速学习C++11 - 右值 移动构造 std::move
  • vue实现5*5宫格当鼠标滑过选中的正方形背景颜色统一变色
  • 2023-08-09 LeetCode每日一题(整数的各位积和之差)
  • EditPlus连接Linux系统远程操作文件
  • JVM 垃圾回收
  • 编程中的宝藏:二分查找