【华为OD机试】1025 - 字符串加解密
文章目录
- 一、题目
- 🔸题目描述
- 🔸输入输出
- 🔸样例1
- 二、代码参考
- 作者:KJ.JK
🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈
🍂个人博客首页: KJ.JK
💖系列专栏:华为OD机试(Java&Python&C语言)
一、题目
🔸题目描述
对输入的字符串进行加解密,并输出。
加密方法为:
当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;
当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;
其他字符不做变化。
解密方法为加密的逆过程。
🔸输入输出
输入
第一行输入一串要加密的密码
第二行输入一串加过密的密码
输出
第一行输出加密后的字符
第二行输出解密后的字符
🔸样例1
输入
abcdefg
BCDEFGH输出
BCDEFGH
abcdefg
二、代码参考
import java.util.Scanner;public class Main{public static void main(String[] args){Scanner in = new Scanner(System.in);while(in.hasNext()){System.out.println(encode(in.nextLine()));System.out.println(decode(in.nextLine()));}}//加密函数private static String encode(String code){char[] t = code.toCharArray(); //将String对象转换为字符数组for(int i=0; i < t.length; i++){if(t[i]>='a' && t[i]<'z')t[i] = (char)(t[i] - 'a' + 'A' + 1);else if(t[i] == 'z')t[i] = 'A';else if(t[i]>='A' && t[i]<'Z')t[i] = (char)(t[i] - 'A' + 'a' + 1);else if(t[i] == 'Z')t[i] = 'a';else if(t[i]>='0' && t[i]<'9')t[i] = (char)(t[i]+1);else if(t[i] == '9')t[i] = '0';}return String.valueOf(t);}//解密函数private static String decode(String password){char[] t = password.toCharArray();for(int i=0; i < t.length; i++){if(t[i]>'a' && t[i]<='z')t[i] = (char)(t[i] - 'a' + 'A' - 1);else if(t[i] == 'a')t[i] = 'Z';else if(t[i]>'A' && t[i]<='Z')t[i] = (char)(t[i] - 'A' + 'a' - 1);else if(t[i] == 'A')t[i] = 'z';else if(t[i]>'0' && t[i]<='9')t[i] = (char)(t[i]-1);else if(t[i] == '0')t[i] = '9';}return String.valueOf(t);}
}--------------------------------------------------------def check(a,b):L1 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"L2 = "BCDEFGHIJKLMNOPQRSTUVWXYZAbcdefghijklmnopqrstuvwxyza1234567890"result = ""if b == 1:for i in a:result += L2[L1.index(i)]elif b == -1:for i in a:result += L1[L2.index(i)]return result
while True:try:print(check(input(),1))print(check(input(), -1))except:break--------------------------------------------------------------#include <stdio.h>
#include <string.h>//以下是Senky的代码:
//a的ASCII:97
//A的ASCII:65
//0的ASCII:48
void code(char* str, int len) {//加密for (int i = 0; i < len; i++) {if (str[i] >= 'a' && str[i] < 'z') { //小写字母a-ystr[i] = str[i] + 'A' - 'a' + 1; //先转大写,再后移} else if (str[i] == 'z') { //z单独处理str[i] = 'A';} else if (str[i] >= 'A' && str[i] < 'Z') { //大写字母A-Ystr[i] = str[i] + 'a' - 'A' + 1; //先转小写,再后移} else if (str[i] == 'Z') { //大写字母Z单独处理str[i] = 'a';} else if (str[i] >= '0' && str[i] < '9') { //数字0-8str[i] = str[i] + 1; //数字后移} else if (str[i] == '9') str[i] = '0'; //数字9单独处理}
}
void decode(char* str, int len) { //解密for (int i = 0; i < len; i++) {if (str[i] > 'a' && str[i] <= 'z') { //小写字母b-zstr[i] = str[i] + 'A' - 'a' - 1; //先转大写,再前移} else if (str[i] == 'a') { //z单独处理str[i] = 'Z';} else if (str[i] > 'A' && str[i] <= 'Z') { //大写字母B-Zstr[i] = str[i] + 'a' - 'A' - 1; //先转小写,再前移} else if (str[i] == 'A') { //大写字母A单独处理str[i] = 'z';} else if (str[i] > '0' && str[i] <= '9') { //数字1-9str[i] = str[i] - 1; //数字前移} else if (str[i] == '0') str[i] = '9'; //数字0单独处理}
}void start() {char str[1001];//要加密的字符char st[1001];//要解密的字符scanf("%[^\n]\n%s\n", str, st);//读取字符串int len = strlen(str);//密码长度code(str, len); //加密printf("%s\n", str);len = strlen(st);//密码长度decode(st, len); //解密printf("%s\n", st);
}int main() {start();return 0;//编辑于2022/10/14
}

作者:KJ.JK
文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习
相关文章:
【华为OD机试】1025 - 字符串加解密
文章目录一、题目🔸题目描述🔸输入输出🔸样例1二、代码参考作者:KJ.JK🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 &#x…...
阿里云版GPT官宣,我们问了它10个问题
4月7日,阿里云宣布自研大模型“通义千问”,目前已开始邀请用户测试体验。 阿里达摩院在NLP自然语言处理等前沿科研领域早已布局多年,并于2019年启动大模型研发,通义千问便是其最新成果,相当于阿里云版的“ChatGPT”。 …...
ORM框架之NHibernate
什么是NHibernate NHibernate是一个开源的对象关系映射(ORM)框架,它允许开发人员使用面向对象的方式来访问关系型数据库。它是Hibernate框架的C#版本,Hibernate框架是Java平台上的ORM框架。 使用NHibernate,您可以将…...
凑微分练习
前言 在学习第一类换元法(凑微分法)时,我们常常需要凑微分。为了更加熟练地运用凑微分法,下面有几道凑微分例题供大家练习。 记住df(x)f′(x)dxdf(x)f(x)dxdf(x)f′(x)dx 例题1 dx‾d(ax)dx\underline{\quad}d(ax)dxd(ax)dx‾…...
JavaWeb——多线程使用哈希表
目录 一、HashMap 1、定义 二、HashTable 1、定义: 2、区别: 三、ConcurrentHashMap 1、定义: 2、优化 (1)、加锁粒度不同——触发锁冲突的频率不同 (2)、充分利用CAS机制——无锁编程…...
anaconda permission denied
可能是路径不对 我的是只写了dir,没写文件名,而我要的是某个文件的路径,所以就报这个错。 具体,我需要某个权重的路径,比如pytorch_resnet50.pth,但我只写了这个权重所在的dir,比如F:/software/…...
蓝桥杯带刷,带刷!!!
A:::::::::::::::::::::::::::::::::::m计划(双指针,滑动窗口,倍增) 题目描述 小明是个鹅卵石收藏者,从小到大他一共收藏了 nn 块鹅卵石,编号分别为 1∼n,价值分别为 a1,a2&…...
第03讲:MinIO分布式文件服务器
一、什么是MinIO Minio 是个基于 Golang 编写的开源对象存储套件,虽然轻量,却拥有着不错的性能。 官网地址:MinIO | High Performance, Kubernetes Native Object Storageopen in new window官网文档地址:MinIO | The MinIO Qui…...
WireShark
wireshark 常用命令: frame.len 帧数据总长度:包含MAC头IP头UDP头UDP数据 eg: 1、 重传命令的长度是62, Frame.len 62 2、 长度大于200的包,frame.len > 200 3、 长度小于80的包,frame.len < 80 Ip.src 数据包的发送源IP地…...
Thinkphp 6.0多语言
本节课我们来学习一下如何配置的多语言功能,并实现调用方法。 一.多语言 1. 如果要开启多语言切换功能,中间件定义文件 middleware.php 开启; // 多语言加载 \think\middleware\LoadLangPack::class, 2. 配置文件在 config/lang…...
生成式AI已形成全球性“AI再造业务”趋势
3月28日至31日,博鳌亚洲论坛2023年年会在海南举行。实体经济与数字经济如何融合发展,产业数字化如何加速向深层次拓展,生成式AI会给产业经济带来哪些变革?这些话题成为今年论坛热点。 百度集团执行副总裁、百度智能云事业群总裁沈…...
kubesphere 安装 skywalking
kubesphere 安装 skywalking 前言 在测试ELK过程中,框架内部使用skywalking来插入的traceId,没有服务端导致Ignored_Trace,先安装下试试skywalking使用效果,后面考了替换为Tlog 先来安装skywalking… 1. 导入helm原 地址&#x…...
乐鑫 × 全国大学生物联网设计竞赛|探究基于 ESP32-S3 的农业革新应用
2023 年全国大学生物联网设计竞赛(下简称“竞赛”)现已官宣启幕!乐鑫科技 (688018.SH) 作为竞赛金牌合作伙伴,将为同学们带来基于 AI SoC ESP32-S3 的独立竞赛任务,并全程提供软硬件开发资源、技术培训…...
【技术分享】华为防火墙多出口接入到Internet
组网需求 如图1所示,FW作为安全网关部署在网络出口,企业分别从ISP1和ISP2租用一条链路。 企业希望访问Server 1的报文从ISP1链路转发,访问Server 2的报文从ISP2链路转发。 当其中一条链路故障时,后续流量可以通过另一条链路转发…...
Winnolin绘制药时曲线图C-T
文章目录前言一、各受试者C-T图1.导入数据2.设置-运行2.查看结果,修改参数二、各制剂C-T图1.导入数据2.设置-运行2.查看结果,修改参数三、平均C-T图1.计算统计量2.设置统计量计算参数(Set Up)3.绘图XY Plot4.查看结果,…...
Kafka系列——详解如何使用和配置生产者实现可靠的消息发送
在可靠的系统里使用生产者 即使我们尽可能把 broker 配置得很可靠,但如果没有对生产者进行可靠性方面的配置,整个系统仍然有可能出现突发性的数据丢失。 比如下面的两个例子: (一)为 broker 配置了 3 个副本࿰…...
wordpres漏洞扫描器——wpscan
WordPress 使用PHP语言开发的博客平台 WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。 WordPress是一款个人博客系统,…...
代码随想录_二叉树_leetcode112、113
leetcode112 路径总和 112. 路径总和 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返…...
mongo-db相关方法
一、参数 名称描述db.adminCommand()针对admin数据库运行命令。db.aggregate()运行不需要基础集合的管理/诊断管道。db.cloneDatabase(hostname)不推荐使用。当针对MongoDB 4.0或更早版本运行时,将数据库从远程主机复制到当前主机。针对MongoDB 4.2或更高版本运行时…...
《Vue3实战》 第二章 创建项目和目录结构
1、创建项目 1.1、命令格式:vue create 项目名称 vue create vue3_example0011.2、运行项目 npm run serve1.2.1、增加run命令 启动时想修改命令,例如: npm run dev1、找到项目根路径下的package.json文件; 2、找到【scripts…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...
零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程
STM32F1 本教程使用零知标准板(STM32F103RBT6)通过I2C驱动ICM20948九轴传感器,实现姿态解算,并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化,适合嵌入式及物联网开发者。在基础驱动上新增…...
