news 2026/2/8 10:11:44

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/2/7 11:07:39

SystemVerilog菜鸟教程:测试平台同步机制深度剖析

SystemVerilog菜鸟教程:测试平台同步机制深度剖析(优化润色版)在数字IC验证的世界里,你有没有遇到过这样的场景?一个精心设计的激励刚发出去,检查器却还没准备好接收;多个驱动器争抢总线资源&am…

作者头像 李华
网站建设 2026/2/5 18:24:09

TouchGAL:构建专属Galgame交流平台的完整技术方案

TouchGAL:构建专属Galgame交流平台的完整技术方案 【免费下载链接】kun-touchgal-next TouchGAL是立足于分享快乐的一站式Galgame文化社区, 为Gal爱好者提供一片净土! 项目地址: https://gitcode.com/gh_mirrors/ku/kun-touchgal-next TouchGAL是一个基于Typ…

作者头像 李华
网站建设 2026/2/5 17:59:15

Universal ADB Driver 终极指南:快速解决 Android 设备连接难题

Universal ADB Driver 终极指南:快速解决 Android 设备连接难题 【免费下载链接】UniversalAdbDriver One size fits all Windows Drivers for Android Debug Bridge. 项目地址: https://gitcode.com/gh_mirrors/un/UniversalAdbDriver 还在为 Android 设备连…

作者头像 李华
网站建设 2026/2/2 5:59:29

STM32嵌入式开发实战:解决温度控制系统的3大核心难题

STM32嵌入式开发实战:解决温度控制系统的3大核心难题 【免费下载链接】STM32 项目地址: https://gitcode.com/gh_mirrors/stm322/STM32 在嵌入式系统开发中,温度控制是一个经典且具有挑战性的应用场景。基于STM32F103C8T6微控制器的温控项目&…

作者头像 李华
网站建设 2026/2/7 12:50:15

游戏NPC对话太机械?集成Anything-LLM实现拟人交互

游戏NPC对话太机械?集成Anything-LLM实现拟人交互 你有没有遇到过这样的场景:在一款精心制作的RPG游戏中,主角走进村庄,向一位老村民打听关于“被诅咒的森林”的传说。结果NPC只是机械地重复一句预设台词:“我什么都不…

作者头像 李华