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

Java | Leetcode Java题解之第472题连接词

题目:

题解:

class Solution {Trie trie = new Trie();public List<String> findAllConcatenatedWordsInADict(String[] words) {List<String> ans = new ArrayList<String>();Arrays.sort(words, (a, b) -> a.length() - b.length());for (int i = 0; i < words.length; i++) {String word = words[i];if (word.length() == 0) {continue;}boolean[] visited = new boolean[word.length()];if (dfs(word, 0, visited)) {ans.add(word);} else {insert(word);}}return ans;}public boolean dfs(String word, int start, boolean[] visited) {if (word.length() == start) {return true;}if (visited[start]) {return false;}visited[start] = true;Trie node = trie;for (int i = start; i < word.length(); i++) {char ch = word.charAt(i);int index = ch - 'a';node = node.children[index];if (node == null) {return false;}if (node.isEnd) {if (dfs(word, i + 1, visited)) {return true;}}}return false;}public void insert(String word) {Trie node = trie;for (int i = 0; i < word.length(); i++) {char ch = word.charAt(i);int index = ch - 'a';if (node.children[index] == null) {node.children[index] = new Trie();}node = node.children[index];}node.isEnd = true;}
}class Trie {Trie[] children;boolean isEnd;public Trie() {children = new Trie[26];isEnd = false;}
}
http://www.lryc.cn/news/457703.html

相关文章:

  • CUDA Graphs学习与实验
  • 【自注意力与Transformer架构在自然语言处理中的演变与应用】
  • LabVIEW交直流接触器动态检测系统
  • Unity3D中基于四叉树的范围检测算法详解
  • k8s网络通信
  • 07 欢乐的跳
  • 【韩顺平Java笔记】第8章:面向对象编程(中级部分)【262-271】
  • GNU链接器(LD):输入分区的垃圾回收及保护处理(KEEP命令)介绍
  • 论文翻译 | Fairness-guided Few-shot Prompting for LargeLanguage Models
  • 【分布式微服务云原生】战胜Redis脑裂:深入解析与解决方案
  • 数据治理与可持续发展:开启企业价值新模式——The Open Group 2024生态系统架构·可持续发展年度大会邀您共襄盛举
  • 数据库的分类及主流数据库
  • Qt C++设计模式->备忘录模式
  • Vue使用@别名替换后端ip地址
  • 强大的PDF到Word转换工具
  • js进阶——深入解析JavaScript中的URLSearchParams
  • 如何利用wsl-Ubuntu里conda用来给Windows的PyCharm开发
  • 操作系统的了解及安装
  • 【C++篇】虚境探微:多态的流动诗篇,解锁动态的艺术密码
  • uniapp的相关知识(1)
  • uniapp生成随机数
  • 使用jenkins将airflow-dbt部署到服务器上
  • 初学java练习题【1】
  • 大模型应用探讨,免费AI写作、一键PPT、免费PDF百种应用、与AI对话
  • 计算机视觉之OpenCV vs YOLO
  • 【深度学习基础模型】胶囊网络(Capsule Networks, CapsNet)详细理解并附实现代码。
  • 科普向 -- 什么是RPC
  • SpringBoot教程(二十四) | SpringBoot实现分布式定时任务之Quartz(基础)
  • 【现代控制理论】第2-5章课后题刷题笔记
  • (四)Proteus仿真STM32单片机使用定时器控制LED