欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > Golang | Leetcode Golang题解之第472题连接词

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

2025/10/29 10:27:24 来源:https://blog.csdn.net/weixin_66442839/article/details/142836686  浏览:    关键词:Golang | Leetcode Golang题解之第472题连接词

题目:

题解:

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
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词