当前位置:网站首页>leetcode:212. 单词搜索 II
leetcode:212. 单词搜索 II
2022-08-04 14:31:00 【OceanStar的学习笔记】
题目来源
题目描述


题目解析
前缀和 + DFS
注意:
- 可能出现: hf、 hfks(易错点)
class Solution {
struct TrieNode{
int size; // 可能出现不止一次
std::string path;
std::vector<TrieNode *> children;
TrieNode() : size(0), children(26, NULL){
}
};
void add(TrieNode *root, std::string &word){
TrieNode *node = root;
for(char ch : word){
int idx = ch - 'a';
if(node->children[idx] == nullptr){
node->children[idx] = new TrieNode();
}
node = node->children[idx];
}
node->size ++;
node->path = word;
}
std::set<std::string> set;
bool process(vector<vector<char>>& board, int i, int j, TrieNode *node){
int N = board.size(), M = board[0].size();
if(i < 0 || j < 0 || i == N || j == M || board[i][j] == 0 || node->children[ board[i][j] - 'a'] == nullptr){
return false;
}
int idx = board[i][j] - 'a';
node = node->children[idx];
if(node->size > 0){
node->size--; // 易错点。。。。。。
set.emplace(node->path);
} //可能还没有结束,不能提前返回
board[i][j] = 0;
bool ans = false;
if(process(board, i + 1, j, node)
|| process(board, i - 1, j, node)
|| process(board, i, j + 1, node)
|| process(board, i, j - 1, node)){
ans = true;
}
board[i][j] = idx + 'a';
return ans;
}
public:
vector<string> findWords(vector<vector<char>>& board, vector<string>& words) {
TrieNode *root = new TrieNode();
for(auto w : words){
add(root, w);
}
for (int i = 0; i < board.size(); ++i) {
for (int j = 0; j < board[i].size(); ++j) {
TrieNode *node = root;
process(board, i, j, node);
}
}
return std::vector<std::string> (set.begin(), set.end());
}
};
边栏推荐
猜你喜欢
随机推荐
[机缘参悟-60]:《兵者,诡道也》-1-开篇:“死“与“生“都是天道
职场漫谈:为什么越是内卷的行业越有人争着抢着往里冲?好奇怪的说...
兆骑科创创新创业大赛活动举办,线上直播路演,投融资对接
字符串类的设计与实现_C语言字符串编程题
Database recovery
oracle+RAC+linux5.1所需要安装的包
杭电校赛(逆袭指数)
属于程序猿的浪漫
Phasecraft连下两城,助力英国量子技术商业化加速!
【剑指offer59】队列的最大值
Find My技术|防止你的宠物跑丢,苹果Find My技术可以帮到你
centos7安装mysql急速版
快解析结合友加畅捷U+
Win10无法访问移动硬盘怎么解决
【HMS core】【Media】【视频编辑服务】 在线素材无法展示,一直Loading状态或是网络异常
【历史上的今天】8 月 4 日:第一位图灵奖女性得主;NVIDIA 收购 MediaQ;首届网络安全挑战大赛完成
1375. 二进制字符串前缀一致的次数-前序遍历法
手搓一个“七夕限定”,用3D Engine 5分钟实现烟花绽放效果
企业级优化
量化细胞内的信息流:机器学习时代下的研究进展









