-
題目連結
-
解題思路
- 一道回溯的題目。
- 我現在在
[i, j]
,然後處理到單詞的index
位置,index之前的都已經解決了,現在要往哪走?很明顯如果[i + 1, j]
的位置等於index
的單詞,我可以去「試試」能不能走通。所以其實很簡單,每當來到[i, j]
,單詞index
,我就看上下左右四個位置,如果和index
的位置相等,就可以去試試。如果上下左右都不行,那就說明「此路不通」,這一次的嘗試失敗了。 - 有一個細節,我怎麼能夠「不走回頭路」?很簡單,我走過的位置,就把其變成一個不可能的字母,比如255。
-
程式碼
class Solution { public: vector<vector<int>> dir{{1, 0}, {0, 1}, {-1, 0}, {0, -1}}; // 當前在[i, j] 來到了單詞的index位置 bool process(vector<vector<char>>& board, string &word, int index, int i, int j, const int n, const int m) { if (index == word.size()) { return true; } // 這個for迴圈其實就是上下左右四個方向嘗試 for (int k = 0; k < 4; ++k) { int next_i = i + dir[k][0]; int next_j = j + dir[k][1]; bool ans = false; if (next_i >= 0 && next_i < n && next_j >= 0 && next_j < m && board[next_i][next_j] == word[index]) { board[next_i][next_j] = 250; // 標記我已經走過了 ans = process(board, word, index + 1, next_i, next_j, n, m); board[next_i][next_j] = word[index]; // 不要忘記恢復回來 } if (ans) { return true; } } return false; } bool exist(vector<vector<char>>& board, string word) { int n = board.size(); int m = board[0].size(); for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { bool ans = false; if (board[i][j] == word[0]) { board[i][j] = 250; ans = process(board, word, 1, i, j, n, m); board[i][j] = word[0]; } if (ans) { return true; } } } return false; } };
79. 單詞搜尋
相關文章
- [LeetCode題解]79. 單詞搜尋LeetCode
- 【Leetcode 346/700】79. 單詞搜尋 【中等】【回溯深度搜尋JavaScript版】LeetCodeJavaScript
- 單詞搜尋
- 單詞搜尋問題
- LeetCode-079-單詞搜尋LeetCode
- MySQL單詞搜尋相關度排名MySql
- 搜尋引擎es-分詞與搜尋分詞
- solr搜尋分詞優化Solr分詞優化
- grep 命令系列:使用 grep 命令來搜尋多個單詞
- BM42:語義搜尋與關鍵詞搜尋結合
- Google:2020年美國搜尋詞榜單 “新冠”高居榜首Go
- 語音技術——關鍵詞搜尋
- API介面獲取搜尋詞統計?API
- 洛谷題單指南-搜尋-P1019 [NOIP2000 提高組] 單詞接龍
- 中文搜尋引擎技術揭密:中文分詞中文分詞
- 拼多多獲得搜尋詞推薦 APIAPI
- Lucene的IK分詞器學習,增加支援單個特殊符號搜尋分詞符號
- Elasticsearch:使用同義詞 synonyms 來提高搜尋效率Elasticsearch
- Elasticsearch 實現簡單搜尋Elasticsearch
- 【搜尋引擎】 PostgreSQL 10 實時全文檢索和分詞、相似搜尋、模糊匹配實現類似Google搜尋自動提示SQL分詞Go
- bing/google/百度高階搜尋技巧--搜尋時關鍵詞不拆分,僅搜尋某個站點或僅要求pdf/doc格式搜尋結果等等Go
- 百度簡單搜尋PC版玩法攻略 簡單搜尋有電腦版嗎?
- 網站最佳化搜尋引擎與關鍵詞網站
- 微信小程式實現搜尋關鍵詞高亮微信小程式
- grep精確匹配搜尋某個單詞的用法 (附: grep高效用法小結))
- 【簡單搜尋】POJ 2251 Dugeon MasterAST
- ElasticSearch 簡單的 搜尋 聚合 分析Elasticsearch
- 怎樣做好搜尋下拉最佳化?百度搜尋推薦詞的推廣方式
- 最佳路徑搜尋(二):啟發式搜尋(代價一致搜尋(Dijkstra search),貪心搜尋,A*搜尋)
- 拼多多搜尋詞統計 API介面操作展示說明API
- 淘寶API介面:獲得關鍵詞搜尋推薦API
- 拼多多API:拼多多獲得搜尋詞統計 APIAPI
- 海量資料搜尋---搜尋引擎
- Django單元測試與搜尋引擎Django
- POJ - 2236 Wireless Network (kuangbin - 簡單搜尋)
- 搜尋
- 搜尋引擎核心技術與演算法 —— 詞項詞典與倒排索引優化演算法索引優化
- 搜尋引擎-03-搜尋引擎原理