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

server/2024/10/11 6:38:10/

题目:

题解

type trie struct {children [26]*trieisEnd    bool
}func (root *trie) insert(word string) {node := rootfor _, ch := range word {ch -= 'a'if node.children[ch] == nil {node.children[ch] = &trie{}}node = node.children[ch]}node.isEnd = true
}func (root *trie) dfs(vis []bool, word string) bool {if word == "" {return true}if vis[len(word)-1] {return false}vis[len(word)-1] = truenode := rootfor i, ch := range word {node = node.children[ch-'a']if node == nil {return false}if node.isEnd && root.dfs(vis, word[i+1:]) {return true}}return false
}func findAllConcatenatedWordsInADict(words []string) (ans []string) {sort.Slice(words, func(i, j int) bool { return len(words[i]) < len(words[j]) })root := &trie{}for _, word := range words {if word == "" {continue}vis := make([]bool, len(word))if root.dfs(vis, word) {ans = append(ans, word)} else {root.insert(word)}}return
}

http://www.ppmy.cn/server/130004.html

相关文章

【go入门】流程控制语句

目录 前言if else基本写法特殊写法 for&#xff08;循环结构&#xff09;for 基本写法不写初始语句&#xff0c;但分号必须要加不写初始语句和结束语句无限循环&#xff08;死循环&#xff09;break和continue for range&#xff08;键值循环&#xff09;switch和casegoto&…

Airtest脚本的重构与优化:提升测试效率和可读性

在自动化测试的工作里&#xff0c;编写高效且易于维护的测试脚本是一项挑战&#xff0c;尤其是在应对复杂的测试场景时。Airtest作为一款常用的自动化测试工具&#xff0c;它提供了丰富的API和灵活的脚本编写方式&#xff0c;帮助测试人员高效地开展UI自动化测试。然而&#xf…

走进异常类的世界,自定义业务异常类实现指南

接下来这篇文章&#xff0c;小编将带领大家走进异常类的世界&#xff0c;探索异常类的奥秘。 引言 学习Java异常类&#xff0c;需掌握其基础概念&#xff0c;如try-catch语句、throw与throws关键字。通过实例理解异常层次结构&#xff0c;区分已检查与未检查异常。实践编写自定…

Redis中大key优化落地实战

背景 最近Redis服务器总是报警&#xff0c;这块对Redis中的数据做了一次治理&#xff0c;分享一下治理的思路。 思路 首先需要看一下Redis库的比较大的KV是啥&#xff0c;发现大部分都是缓存的JSON。如下面所示 {"id": 1,"name": "张三",&qu…

GRU--详解

GRU&#xff08;Gated Recurrent Unit&#xff09;&#xff08;门控循环单元&#xff09;是RNN&#xff08;循环神经网络&#xff09;的一种变体。GRU的设计简化了另一种RNN变体——LSTM&#xff08;长短期记忆网络&#xff09;&#xff0c;与LSTM不同的是&#xff0c;GRU将输入…

鸿蒙开发(NEXT/API 12)【HTTP数据请求】网络篇

场景介绍 应用通过HTTP发起一个数据请求&#xff0c;支持常见的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。 接口说明 HTTP数据请求功能主要由http模块提供。 使用该功能需要申请ohos.permission.INTERNET权限。 接口名描述createHttp()创建一个http请求…

如何进行数据中心负载测试的自动化?

数据中心负载测试的自动化是一种通过使用软件工具和脚本来模拟大量用户访问数据中心的过程&#xff0c;以评估其性能、稳定性和可扩展性的方法。以下是进行数据中心负载测试自动化的一些建议&#xff1a; 市场上有许多负载测试工具可供选择&#xff0c;如LoadRunner、JMeter、…

充电宝租赁管理系统网站毕业设计SpringBootSSM框架开发

目录 1. 概述 2. 技术选择与介绍 3. 系统设计 4. 功能实现 5. 需求分析 1. 概述 充电宝租赁管理系统网站是一个既实用又具有挑战性的项目。 随着移动设备的普及和人们日常生活对电力的持续依赖&#xff0c;充电宝租赁服务已成为现代都市生活中的一项重要便利设施。它不仅为…