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

【华为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 - 字符串加解密

文章目录一、题目&#x1f538;题目描述&#x1f538;输入输出&#x1f538;样例1二、代码参考作者&#xff1a;KJ.JK&#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x…...

阿里云版GPT官宣,我们问了它10个问题

4月7日&#xff0c;阿里云宣布自研大模型“通义千问”&#xff0c;目前已开始邀请用户测试体验。 阿里达摩院在NLP自然语言处理等前沿科研领域早已布局多年&#xff0c;并于2019年启动大模型研发&#xff0c;通义千问便是其最新成果&#xff0c;相当于阿里云版的“ChatGPT”。 …...

ORM框架之NHibernate

什么是NHibernate NHibernate是一个开源的对象关系映射&#xff08;ORM&#xff09;框架&#xff0c;它允许开发人员使用面向对象的方式来访问关系型数据库。它是Hibernate框架的C#版本&#xff0c;Hibernate框架是Java平台上的ORM框架。 使用NHibernate&#xff0c;您可以将…...

凑微分练习

前言 在学习第一类换元法&#xff08;凑微分法&#xff09;时&#xff0c;我们常常需要凑微分。为了更加熟练地运用凑微分法&#xff0c;下面有几道凑微分例题供大家练习。 记住df(x)f′(x)dxdf(x)f(x)dxdf(x)f′(x)dx 例题1 dx‾d(ax)dx\underline{\quad}d(ax)dx​d(ax)dx‾…...

JavaWeb——多线程使用哈希表

目录 一、HashMap 1、定义 二、HashTable 1、定义&#xff1a; 2、区别&#xff1a; 三、ConcurrentHashMap 1、定义&#xff1a; 2、优化 &#xff08;1&#xff09;、加锁粒度不同——触发锁冲突的频率不同 &#xff08;2&#xff09;、充分利用CAS机制——无锁编程…...

anaconda permission denied

可能是路径不对 我的是只写了dir&#xff0c;没写文件名&#xff0c;而我要的是某个文件的路径&#xff0c;所以就报这个错。 具体&#xff0c;我需要某个权重的路径&#xff0c;比如pytorch_resnet50.pth&#xff0c;但我只写了这个权重所在的dir&#xff0c;比如F:/software/…...

蓝桥杯带刷,带刷!!!

A:::::::::::::::::::::::::::::::::::m计划&#xff08;双指针&#xff0c;滑动窗口&#xff0c;倍增&#xff09; 题目描述 小明是个鹅卵石收藏者&#xff0c;从小到大他一共收藏了 nn 块鹅卵石&#xff0c;编号分别为 1∼n&#xff0c;价值分别为 a1​&#xff0c;a2​&…...

第03讲:MinIO分布式文件服务器

一、什么是MinIO Minio 是个基于 Golang 编写的开源对象存储套件&#xff0c;虽然轻量&#xff0c;却拥有着不错的性能。 官网地址&#xff1a;MinIO | High Performance, Kubernetes Native Object Storageopen in new window官网文档地址&#xff1a;MinIO | The MinIO Qui…...

WireShark

wireshark 常用命令&#xff1a; frame.len 帧数据总长度&#xff1a;包含MAC头IP头UDP头UDP数据 eg: 1、 重传命令的长度是62, Frame.len 62 2、 长度大于200的包&#xff0c;frame.len > 200 3、 长度小于80的包&#xff0c;frame.len < 80 Ip.src 数据包的发送源IP地…...

Thinkphp 6.0多语言

本节课我们来学习一下如何配置的多语言功能&#xff0c;并实现调用方法。 一&#xff0e;多语言 1. 如果要开启多语言切换功能&#xff0c;中间件定义文件 middleware.php 开启&#xff1b; // 多语言加载 \think\middleware\LoadLangPack::class, 2. 配置文件在 config/lang…...

生成式AI已形成全球性“AI再造业务”趋势

3月28日至31日&#xff0c;博鳌亚洲论坛2023年年会在海南举行。实体经济与数字经济如何融合发展&#xff0c;产业数字化如何加速向深层次拓展&#xff0c;生成式AI会给产业经济带来哪些变革&#xff1f;这些话题成为今年论坛热点。 百度集团执行副总裁、百度智能云事业群总裁沈…...

kubesphere 安装 skywalking

kubesphere 安装 skywalking 前言 在测试ELK过程中&#xff0c;框架内部使用skywalking来插入的traceId&#xff0c;没有服务端导致Ignored_Trace&#xff0c;先安装下试试skywalking使用效果&#xff0c;后面考了替换为Tlog 先来安装skywalking… 1. 导入helm原 地址&#x…...

乐鑫 × 全国大学生物联网设计竞赛|探究基于 ESP32-S3 的农业革新应用

​​​​​​​ 2023 年全国大学生物联网设计竞赛&#xff08;下简称“竞赛”&#xff09;现已官宣启幕&#xff01;乐鑫科技 (688018.SH) 作为竞赛金牌合作伙伴&#xff0c;将为同学们带来基于 AI SoC ESP32-S3 的独立竞赛任务&#xff0c;并全程提供软硬件开发资源、技术培训…...

【技术分享】华为防火墙多出口接入到Internet

组网需求 如图1所示&#xff0c;FW作为安全网关部署在网络出口&#xff0c;企业分别从ISP1和ISP2租用一条链路。 企业希望访问Server 1的报文从ISP1链路转发&#xff0c;访问Server 2的报文从ISP2链路转发。 当其中一条链路故障时&#xff0c;后续流量可以通过另一条链路转发…...

Winnolin绘制药时曲线图C-T

文章目录前言一、各受试者C-T图1.导入数据2.设置-运行2.查看结果&#xff0c;修改参数二、各制剂C-T图1.导入数据2.设置-运行2.查看结果&#xff0c;修改参数三、平均C-T图1.计算统计量2.设置统计量计算参数&#xff08;Set Up&#xff09;3.绘图XY Plot4.查看结果&#xff0c;…...

Kafka系列——详解如何使用和配置生产者实现可靠的消息发送

在可靠的系统里使用生产者 即使我们尽可能把 broker 配置得很可靠&#xff0c;但如果没有对生产者进行可靠性方面的配置&#xff0c;整个系统仍然有可能出现突发性的数据丢失。 比如下面的两个例子&#xff1a; &#xff08;一&#xff09;为 broker 配置了 3 个副本&#xff0…...

wordpres漏洞扫描器——wpscan

WordPress 使用PHP语言开发的博客平台 WordPress是使用PHP语言开发的博客平台&#xff0c;用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统&#xff08;CMS&#xff09;来使用。 WordPress是一款个人博客系统&#xff0c…...

代码随想录_二叉树_leetcode112、113

leetcode112 路径总和 112. 路径总和 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返…...

mongo-db相关方法

一、参数 名称描述db.adminCommand()针对admin数据库运行命令。db.aggregate()运行不需要基础集合的管理/诊断管道。db.cloneDatabase(hostname)不推荐使用。当针对MongoDB 4.0或更早版本运行时&#xff0c;将数据库从远程主机复制到当前主机。针对MongoDB 4.2或更高版本运行时…...

《Vue3实战》 第二章 创建项目和目录结构

1、创建项目 1.1、命令格式&#xff1a;vue create 项目名称 vue create vue3_example0011.2、运行项目 npm run serve1.2.1、增加run命令 启动时想修改命令&#xff0c;例如&#xff1a; npm run dev1、找到项目根路径下的package.json文件&#xff1b; 2、找到【scripts…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验&#xff0c;我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育&#xff0c;这并非炒作&#xff0c;而是已经发生的巨大变革。教育机构和教育者不能忽视它&#xff0c;试图简单地禁止学生使…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

深入理解Optional:处理空指针异常

1. 使用Optional处理可能为空的集合 在Java开发中&#xff0c;集合判空是一个常见但容易出错的场景。传统方式虽然可行&#xff0c;但存在一些潜在问题&#xff1a; // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1&#xff1a;通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分&#xff0c;设置 Gradle JDK 方法2&#xff1a;通过 Settings File → Settings... (或 CtrlAltS)…...