golang刷leetcode技巧之如何实现最长单词
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这篇文章主要为大家展示了"golang刷leetcode技巧之如何实现最长单词",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"golang刷leetcode
千家信息网最后更新 2025年02月04日golang刷leetcode技巧之如何实现最长单词
这篇文章主要为大家展示了"golang刷leetcode技巧之如何实现最长单词",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"golang刷leetcode技巧之如何实现最长单词"这篇文章吧。
给定一组单词words
,编写一个程序,找出其中的最长单词,且该单词由这组单词中的其他单词组合而成。若有多个长度相同的结果,返回其中字典序最小的一项,若没有符合要求的单词则返回空字符串。
示例:
输入: ["cat","banana","dog","nana","walk","walker","dogwalker"]
输出: "dogwalker"
解释: "dogwalker"可由"dog"和"walker"组成。
提示:
0 <= len(words) <= 100
1 <= len(words[i]) <= 100
解题思路
1,排序+map
2,从最长到最短,
3,深度优先搜索,找剩余的单词是否匹配
4,需要注意的是,搜索前要把当前单词从map删除
5,但是要配合长度递减排序
代码实现
import "sort"
type sortWords []string
func(s sortWords) Len() int {
return len(s)
}
func(s sortWords) Swap(i, j int) {
s[i], s[j] = s[j], s[i]
}
func(s sortWords) Less(i, j int) bool {
return len(s[i]) >= len(s[j])
}
func longestWord(words []string) string {
longest := 0
wordsMap := make(map[string]bool)
for _, word := range words {
wordsMap[word] = true
if longest < len(word) {
longest = len(word)
}
}
sort.Sort(sortWords(words))
fmt.Println(words)
for _, word := range words {
delete(wordsMap, word)
if dfs(word, wordsMap) {
return word
}
}
return ""
}
func dfs(word string, wordsMap map[string]bool) bool {
if word == "" {
return true
}
for i := 1; i <= len(word); i++ {
if _, ok := wordsMap[word[:i]];ok {
if dfs(word[i:], wordsMap) {
return true
}
}
}
return false
}
以上是"golang刷leetcode技巧之如何实现最长单词"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
单词
最长
技巧
内容
篇文章
长度
学习
帮助
排序
搜索
最小
相同
代码
多个
字典
思路
易懂
更多
条理
深度
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器免费招收管理员
互联网科技发展带来的弊端
浮云服务器
其他账户连接mysql服务器
如何监控服务器性能
软件开发是外资限制么
计算机网络技术头像
软件开发需要那方面人才
网络安全月是几月
辽宁服务器机房规格尺寸
软件开发方面的论坛
肇庆信息软件开发方案
搜不到数据库怎么办
sqllite数据库备份文件
网络安全密钥形式
局域网中服务器和客户机
小学网络安全知识观后感
西门子分布式io服务器模块
web管理数据库源码
监所软件开发公司
禄劝信息化软件开发市场报价
万德数据库会员
南京网络安全市场分析报告
hr6268s-72超算服务器
小学学校网络安全检查总结报告
黄浦区网络技术开发机构整顿
服务器坏了如何检测
宜昌市伍家岗附近软件开发
市网络安全测评中心
服务器投资的问题和解决方法