四川建设网有限责 任公司网站宝安印刷网站建设

张小明 2026/1/8 3:03:00
四川建设网有限责 任公司网站,宝安印刷网站建设,wordpress 标签云样式,彩票网站建设多少钱题目描述给定一组单词words#xff0c;编写一个程序#xff0c;找出其中的最长单词#xff0c;且该单词由这组单词中的其他单词组合而成。若有多个长度相同的结果#xff0c;返回其中字典序最小的一项#xff0c;若没有符合要求的单词则返回空字符串。示例#xff1a;输入…题目描述给定一组单词words编写一个程序找出其中的最长单词且该单词由这组单词中的其他单词组合而成。若有多个长度相同的结果返回其中字典序最小的一项若没有符合要求的单词则返回空字符串。示例输入[cat,banana,dog,nana,walk,walker,dogwalker]输出dogwalker解释dogwalker可由dog和walker组成。代码实现import java.util.*; class Solution { public String longestWord(String[] words) { // 按长度分组 MapInteger, ListString map new HashMap(); SetString set new HashSet(); int maxL 0; for (String s : words) { set.add(s); int k s.length(); map.computeIfAbsent(k, key - new ArrayList()).add(s); maxL Math.max(maxL, k); } // 从最长到最短检查 while (maxL 0) { if (map.containsKey(maxL)) { ListString list map.get(maxL); Collections.sort(list); // 字典序排序 for (String s : list) { set.remove(s); // 先移除当前单词 if (canBeFormed(s, set)) { return s; } set.add(s); // 恢复 } } maxL--; } return ; } private boolean canBeFormed(String word, SetString dict) { if (word.isEmpty()) return false; boolean[] dp new boolean[word.length() 1]; dp[0] true; for (int i 1; i word.length(); i) { for (int j 0; j i; j) { if (dp[j] dict.contains(word.substring(j, i))) { dp[i] true; break; } } } return dp[word.length()]; } }class Solution { public String longestWord(String[] words) { // 1. 对单词数组进行排序 // 规则优先按长度降序排列从长到短长度相同时按字典序升序排列 Arrays.sort(words, (o1, o2) - { if (o1.length() o2.length()) // 长度相同时按字典序升序排列a在前z在后 return o1.compareTo(o2); else { // 长度不同时按长度降序排列长在前短在后 return Integer.compare(o2.length(), o1.length()); } }); // 2. 创建HashSet存储所有单词便于快速查找 SetString set new HashSet(Arrays.asList(words)); // 3. 遍历排序后的单词数组 // 由于已经按长度降序、字典序升序排序找到的第一个符合条件的单词就是答案 for (String word : words) { // 3.1 先将当前单词从集合中移除确保不会使用单词本身来构造自己 set.remove(word); // 3.2 检查当前单词是否能由集合中的其他单词组成 if (find(set, word)) return word; // 找到符合条件的单词直接返回 // 3.3 恢复集合准备检查下一个单词 set.add(word); } // 4. 没有找到符合条件的单词返回空字符串 return ; } // 递归方法判断给定的单词是否能由字典set中的单词组成 public boolean find(SetString set, String word) { // 基线条件如果单词长度为0说明已经成功匹配完成 if (word.length() 0) return true; // 尝试所有可能的分割点 for (int i 0; i word.length(); i) { // 将单词分为两部分word[0...i] 和 word[i1...end] String prefix word.substring(0, i 1); // 如果前缀存在于字典中并且剩余部分也能由字典中的单词组成 if (set.contains(prefix) find(set, word.substring(i 1))) return true; // 找到一种有效的分割方式 } // 所有分割方式都尝试过了无法组成该单词 return false; } }
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

pk10网站开发做个人网站怎么赚钱

Kimi-VL-A3B:28亿激活参数实现多模态效率革命,开源VLM技术边界再突破 【免费下载链接】Kimi-VL-A3B-Instruct 我们推出Kimi-VL——一个高效的开源混合专家(MoE)视觉语言模型(VLM),具备先进的多模…

张小明 2026/1/6 0:42:49 网站建设

做网站私活多少钱广州城市建设档案馆网站

YOLO模型安全防护指南:防止恶意输入攻击的实践建议 在智能制造车间的视觉质检线上,一台搭载YOLOv8的边缘设备突然开始将所有缺陷产品标记为“合格”——调查发现,攻击者通过监控摄像头注入了一组经过精心扰动的图像,成功欺骗了检测…

张小明 2026/1/7 18:37:10 网站建设

上海建设工程造价信息网站香河做网站shijuewang

AppleRa1n激活锁绕过工具:iOS设备解锁终极指南 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 当你的iPhone或iPad因为Apple ID密码遗忘或二手设备激活问题而无法使用时,AppleR…

张小明 2026/1/7 17:33:36 网站建设

苏州网站开发找薇网站怎么做关键词怎么优化

第一章:量子算法的 VSCode 示例代码在现代量子计算开发中,Visual Studio Code(VSCode)已成为主流集成开发环境之一。借助 Q# 插件和 Azure Quantum 开发工具包,开发者可以在本地高效编写、模拟和调试量子算法。环境配置…

张小明 2026/1/6 15:13:36 网站建设

孔为民医生个人网站找人开发一个网站多少钱

医院资源调度优化:床位/医生分配在TensorRT上动态平衡 在大型三甲医院的指挥中心,凌晨两点的急诊科刚刚接收了五名车祸伤员。与此同时,心内科ICU有两位患者病情恶化,急需转出普通病房腾出监护床位;而骨科手术室因一台复…

张小明 2026/1/7 20:26:17 网站建设

三水网站开发网站建设用什么网站好一点

​欢迎大家订阅我的专栏:算法题解:C与Python实现! 本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战! 专栏特色 1.经典算法练习:根据信息学竞赛大纲,精心挑选…

张小明 2026/1/6 17:15:21 网站建设