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

网站一直显示建设中上饶高端网站建设

网站一直显示建设中,上饶高端网站建设,佛山网站建设哪儿有,ps怎么做网站一寸的照片2025 A卷 100分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析; 本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分…

在这里插入图片描述

2025 A卷 100分 题型

本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式;
并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析;
本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分享》

华为OD机试真题《单词接龙(首字母接龙)》:


文章快捷目录

题目描述及说明

Java

python

JavaScript

C++

C

GO


题目名称:单词接龙(首字母接龙)


知识点:字符串、贪心算法、逻辑处理
时间限制:1秒
空间限制:256MB
限定语言:不限


题目描述

给定一组由小写字母组成的单词数组,并指定其中一个单词作为起始单词,按照以下规则进行单词接龙,输出最长的拼接字符串(无空格):

  1. 接龙规则:每个后续单词的首字母必须与前一个单词的尾字母相同。
  2. 选择优先级:当存在多个可选单词时,优先选择长度最长的;若长度相同,则选择字典序最小的。
  3. 去重规则:已使用的单词不可重复使用。

输入描述

  • 第一行为起始单词的索引 K(0 ≤ K < N)。
  • 第二行为单词总数 N(1 ≤ N ≤ 20)。
  • 后续 N 行,每行一个单词(长度1~30)。

输出描述
拼接后的最长单词串。

示例
输入:

0  
6  
word  
dd  
da  
dc  
dword  
d  

输出:

worddwordda  

解释:起始单词 word → 接 dword(最长且首字母为 d)→ 剩余可选 dddadc,选择字典序最小的 da


Java

问题分析

题目要求根据给定的单词列表,从指定起始单词开始,按照首尾字母相同的规则进行接龙,选择时优先选最长的单词,长度相同则选字典序最小的,且每个单词只能用一次。目标是找到最长的拼接字符串。


解题思路

  1. 深度优先搜索(DFS):遍历所有可能的路径,记录最长拼接字符串。
  2. 贪心剪枝:在每一步中按优先级处理候选单词(长度优先,字典序次之),尝试快速找到最优解。
  3. 回溯:标记已使用的单词,递归结束后恢复状态,确保其他路径可被探索。

代码实现

import java.util.*;public class Main {private static String maxStr = ""; // 存储最长结果private static int maxLen = 0;     // 最长字符串长度private static int totalLen = 0;    // 所有单词总长度(用于剪枝)public static void main(String[] args) {Scanner sc = new Scanner(System.in);int k = Integer.parseInt(sc.nextLine()); // 起始单词索引int n = Integer.parseInt(sc.nextLine()); // 单词总数String[] words = new String[n];for (int i = 0; i < n; i++) {words[i] = sc.nextLine().trim();}// 计算所有单词总长度for (String word : words) {totalLen += word.length();}boolean[] used = new boolean[n]; // 记录单词是否被使用String startWord = words[k];used[k] = true;maxStr = startWord;maxLen = startWord.length();dfs(startWord, startWord.charAt(startWord.length() - 1), used, words, startWord.length());System.out.println(maxStr);}private static void dfs(String currentStr, char lastChar, boolean[] used, String[] words, int usedLen) {// 更新最长结果int currentLen = currentStr.length();if (currentLen > maxLen || (currentLen == maxLen && currentStr.compareTo(maxStr) < 0)) {maxStr = currentStr;maxLen = currentLen;}// 剪枝:当前长度 + 剩余单词总长度 <= 已找到的最大长度,无需继续int remaining = totalLen - usedLen;if (currentLen + remaining <= maxLen) {return;}// 收集所有可用的候选单词(首字母匹配且未被使用)List<Candidate> candidates = new ArrayList<>();for (int i = 0; i < words.length; i++) {if (!used[i] && words[i].charAt(0) == lastChar) {candidates.add(new Candidate(words[i], i));}}// 按长度降序、字典序升序排序Collections.sort(candidates, (a, b) -> {if (a.word.length() != b.word.length()) {return Integer.compare(b.word.length(), a.word.length());} else {return a.word.compareTo(b.word);}});// 递归处理每个候选for (Candidate c : candidates) {String word = c.word;int idx = c.index;used[idx] = true; // 标记为已用dfs(currentStr + word, word.charAt(word.length() - 1), used, words, usedLen + word.length());used[idx] = false; // 回溯}}// 辅助类,记录单词及其索引static class Candidate {String word;int index;Candidate(String word, int index) {this.word = word;this.index = index;}}
}

代码解析

  1. 全局变量

    • maxStr:记录当前最长的拼接字符串。
    • maxLen:记录最长字符串的长度。
    • totalLen:所有单词的总长度,用于剪枝。
  2. 输入处理

    • 读取起始索引 k 和单词列表,初始化 used 数组标记起始单词为已使用。
  3. DFS函数

    • 更新最长字符串:比较当前拼接长度,更新 maxStrmaxLen
    • 剪枝:若当前长度加上剩余单词总长度无法超过已知最长长度,提前返回。
    • 候选单词收集:筛选所有首字母匹配且未被使用的单词。
    • 排序:按长度降序和字典序升序排列候选单词。
    • 递归处理:依次选择每个候选单词,标记为已用,递归调用后回溯。
  4. Candidate类

    • 记录单词及其索引,方便排序后回溯时恢复状态。

http://www.dtcms.com/wzjs/559577.html

相关文章:

  • 弄个盈利网站做什么某购物网站建设方案
  • 荆州 网站建设自己做的网站会被黑吗
  • 如何进行网站建设的销售深圳市宝安区投资推广署官网
  • 网站301做排名wordpress版本怎么升级
  • 柯桥区网站建设广东快速做网站公司哪家好
  • 服务器外面打不开网站国外免费服务器地址
  • 公司网站建设需要显示什么wordpress 飞龙博客 许愿墙
  • 网站推广策划案oa系统办公软件排名
  • 建设网站制作公司网页版梦幻西游攻略
  • 网站开发的前端语言是哪些郑州网站搭建
  • 网站建设功能报价单开发一个小程序要多少费用
  • 郑州网站建设优化公司阿里巴巴怎么做不花钱的网站
  • 烟台网站建设方案策划网站不用了 怎么关闭
  • 最新网站建设软件有哪些做一个平台网站要多少钱
  • 做网站要实名吗asp.net网站的数据库配置
  • 网站制作怎么做图标班级优化大师电脑版
  • wordpress 最强主题阳江网站关键字优化
  • 网站开发与维护工资手机网站解析域名
  • 福州公司做网站产品网站开发流程
  • 编程自学免费网站wordpress下载样式
  • 建立公司网站wordpress get option
  • 梧州住房和建设局网站广州互联网营销师
  • 柬埔寨网站开发要学网页设计
  • 汉中网站建设公司电话学生作业做网站需要
  • 网站设计app苏州北京网站建设
  • 文档分享类网站建设系统网站建设ppt
  • 娱乐网站策划书域名查询网站入口
  • 网站建设价格槽闸阀域名 就一个网站
  • 做影视网站什么cms好用17网一起做网站广州
  • 公司网站打不开不知道谁做的网页的响应式布局