news 2026/5/1 10:25:16

18.华为OD-特殊的加密算法详解与Java实现(2024年OD D卷)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
18.华为OD-特殊的加密算法详解与Java实现(2024年OD D卷)

📋 题目概述

问题描述

特殊的加密算法要求我们在一个数字矩阵(密码本)中寻找一条路径,该路径上的数字序列与明文数字序列完全匹配。加密过程是将路径中每个单元格的坐标(行号和列号)按顺序输出,形成密文。

核心规则

  1. 明文结构:由0-9数字组成的字符串,数字间可能有空格分隔

  2. 密码本结构:0-9数字组成的二维数组

  3. 路径约束

    • 路径中相邻单元格必须是上下左右相邻(对角线不相邻)

    • 每个单元格只能使用一次

    • 路径上的数字序列必须与明文完全一致

  4. 密文格式:每个数字对应两个坐标值(行 列),坐标值用空格分隔

  5. 结果要求:如有多条密文,返回字符序最小的密文;如无法匹配,返回"error"

🎯 算法设计思路

问题本质分析

这是一个典型的图搜索问题,可以建模为:

  • 节点:密码本中的每个单元格

  • :相邻单元格之间的连接(上下左右)

  • 目标:寻找一条路径,路径上的数字序列等于明文序列

解决方案:DFS + 回溯算法

核心算法流程

flowchart TD A[开始] --> B[读取密码本和明文] B --> C[预处理数据] C --> D{明文长度>0?} D -->|否| E[返回空字符串] D -->|是| F[寻找所有起点] F --> G[对每个起点进行DFS搜索] G --> H{找到完整路径?} H -->|是| I[保存路径] H -->|否| J[继续搜索] I --> K[所有路径搜索完成] J --> K K --> L{有找到路径?} L -->|否| M[返回"error"] L -->|是| N[按字典序排序路径] N --> O[选择最小字典序路径] O --> P[构建密文字符串] P --> Q[输出结果]

💻 Java代码实现

完整代码

package com.study.algorithm.HuaweiOD.特殊的加密算法; import java.util.ArrayList; import java.util.List; import java.util.Scanner; /** * 华为OD-特殊的加密算法 * 2024年OD(D卷)详解与Java实现 * * @author Tony_Yi * @date 2025/12/21 */ public class SpecialEncryption { // 四个方向:上、下、左、右 private static final int[][] DIRECTIONS = { {-1, 0}, {1, 0}, {0, -1}, {0, 1}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 17:11:10

通达信缠论分析插件:让技术分析变得简单高效

通达信缠论分析插件:让技术分析变得简单高效 【免费下载链接】Indicator 通达信缠论可视化分析插件 项目地址: https://gitcode.com/gh_mirrors/ind/Indicator 还在为复杂的缠论分析感到困惑吗?这款通达信缠论分析插件能够自动识别缠论关键结构&a…

作者头像 李华
网站建设 2026/5/1 10:24:40

Mac百度网盘终极提速方案:免费解锁全速下载体验

Mac百度网盘终极提速方案:免费解锁全速下载体验 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘的龟速下载而苦恼吗&#xf…

作者头像 李华
网站建设 2026/4/23 15:34:12

终极Adobe Illustrator脚本工具箱:12个必装效率神器完整指南

终极Adobe Illustrator脚本工具箱:12个必装效率神器完整指南 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts illustrator-scripts是一个专为Adobe Illustrator设计的开源…

作者头像 李华
网站建设 2026/5/1 10:48:05

终极指南:如何快速掌握EPANET水力分析开源工具

终极指南:如何快速掌握EPANET水力分析开源工具 【免费下载链接】EPANET The Water Distribution System Hydraulic and Water Quality Analysis Toolkit 项目地址: https://gitcode.com/gh_mirrors/ep/EPANET 探索供水管网系统的水力特性和水质行为分析从未如…

作者头像 李华
网站建设 2026/5/1 9:37:26

PowerToys中文汉化版完全指南:让Windows效率翻倍的秘密武器

PowerToys中文汉化版完全指南:让Windows效率翻倍的秘密武器 【免费下载链接】PowerToys-CN PowerToys Simplified Chinese Translation 微软增强工具箱 自制汉化 项目地址: https://gitcode.com/gh_mirrors/po/PowerToys-CN 你是否曾经为Windows系统的操作效…

作者头像 李华
网站建设 2026/5/1 9:37:44

如何快速解决微信3.9.10.19防撤回失效问题:5步终极指南

近期微信3.9.10.19版本更新后,众多用户反馈防撤回功能出现异常,虽然RevokeMsgPatcher补丁显示安装成功,但实际上无法拦截已撤回消息。经过深入技术分析,我们发现这主要是微信新版本改变了默认安装路径结构,导致路径识别…

作者头像 李华