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

C++ | Leetcode C++题解之第472题连接词

题目:

题解:

struct Trie {bool isEnd;vector<Trie *> children;Trie() {this->children = vector<Trie *>(26, nullptr);this->isEnd = false;}
};class Solution {
public:Trie * trie = new Trie();vector<string> findAllConcatenatedWordsInADict(vector<string>& words) {vector<string> ans;sort(words.begin(), words.end(), [&](const string & a, const string & b){return a.size() < b.size(); });for (int i = 0; i < words.size(); i++) {string word = words[i];if (word.size() == 0) {continue;}vector<int> visited(word.size(), 0);if (dfs(word, 0, visited)) {ans.emplace_back(word);} else {insert(word);}}return ans;}bool dfs(const string & word, int start, vector<int> & visited) {if (word.size() == start) {return true;}if (visited[start]) {return false;}visited[start] = true;Trie * node = trie;for (int i = start; i < word.size(); i++) {char ch = word[i];int index = ch - 'a';node = node->children[index];if (node == nullptr) {return false;}if (node->isEnd) {if (dfs(word, i + 1, visited)) {return true;}}}return false;}void insert(const string & word) {Trie * node = trie;for (int i = 0; i < word.size(); i++) {char ch = word[i];int index = ch - 'a';if (node->children[index] == nullptr) {node->children[index] = new Trie();}node = node->children[index];}node->isEnd = true;}
};

http://www.mrgr.cn/news/47594.html

相关文章:

  • Redis:数据类型
  • Jenkins触发器--在其他项目执行后构建
  • 鸿蒙开发(30) grid
  • [ LeetCode 75 ] 283 移动零(JavaScript)
  • pytorch模型的保存失敗しましたが、
  • 51单片机——串口通信(重点)
  • set有哪些实现类?
  • 【C语言】计算需要的缓冲区大小
  • ARM知识点三和串口代码的编写流程
  • 毕业设计选题:基于php+vue+uniapp的新闻资讯小程序
  • 5.C语言基础入门:数据类型、变量声明与创建详解
  • Java | Leetcode Java题解之第470题用Rand7()实现Rand10()
  • 使用 Raspberry Pi Pico W 的基于 MQTT 的分布式网络自适应估计
  • Java | Leetcode Java题解之第472题连接词
  • 【CSS in Depth 2 精译_047】7.2 CSS 响应式设计中的媒体查询原则(上):深入理解媒体查询的类型
  • QTableView-mode中嵌入复选框CheckBox
  • 编程思想:编程范式:响应式编程
  • 快速解决urllib3.exceptions.MaxRetryError: HTTPSConnectionPool
  • Unity网络开发 - C#开源网络通信库PESocket的使用
  • 7.C++面向对象3(拷贝构造函数,赋值运算符重载)
  • Renesas R7FA8D1BH (Cortex®-M85) 上超声波测距模块(HC-SR04)驱动开发
  • Effective C++笔记之二十四:stack overflow
  • window.location.href和open的区别
  • QD1-P14 HTML常用标签:input输入标签
  • MySQL--事务(详解)
  • PGMP-00基础单词(1-25)