79. Word Search
来源:互联网 发布:神之浩劫数据迁移 编辑:程序博客网 时间:2024/06/13 20:37
79 Word Search
Given a 2D board and a word, find if the word exists in the grid.
The word can be constructed from letters of sequentially adjacent cell, where “adjacent” cells are those horizontally or vertically neighboring. The same letter cell may not be used more than once.
For example,
Given board =
[
[‘A’,’B’,’C’,’E’],
[‘S’,’F’,’C’,’S’],
[‘A’,’D’,’E’,’E’]
]
word = “ABCCED”, -> returns true,
word = “SEE”, -> returns true,
word = “ABCB”, -> returns false.
思路:肯定是dfs了。但dfs怎么写,我这个地方写的很蠢……看了答案后也把代码贴这里,顺便发发牢骚。
class Solution { bool dfs(vector<vector<char>>& board,const string& word,int i,int row,int col,vector<vector<bool>>& visited) { if(i==word.size()-1) { return true; } visited[row][col]=true; if(row-1>=0 && !visited[row-1][col] && board[row-1][col]==word[i+1] && dfs(board,word,i+1,row-1,col,visited)) return true; if(row+1<board.size() && !visited[row+1][col] && board[row+1][col]==word[i+1] && dfs(board,word,i+1,row+1,col,visited)) return true; if(col-1>=0 && !visited[row][col-1] && board[row][col-1]==word[i+1] && dfs(board,word,i+1,row,col-1,visited)) return true; if(col+1<board[0].size() && !visited[row][col+1] && board[row][col+1]==word[i+1] && dfs(board,word,i+1,row,col+1,visited)) return true; visited[row][col]=false; return false; }public: bool exist(vector<vector<char>>& board, string word) { if(word.size()==0) { return true; } int row=board.size(); if(row==0) { return false; } int col=board[0].size(); vector<vector<bool>> visited(row,vector<bool>(col,false)); for(int i=0;i<row;++i) { for(int j=0;j<col;++j) { if(board[i][j]==word[0]) { if(dfs(board,word,0,i,j,visited)) return true; } } } return false; }};
1、自己写的代码是管他能不能dfs,先扔进dfs函数中,这么做不太好……
2、还是第一点说的,该不该继续dfs,要先判断后再调用dfs比较好。。。
阅读全文
0 0
- LeetCode 79. Word Search
- [LeetCode]79.Word Search
- LeetCode --- 79. Word Search
- [Leetcode] 79. Word Search
- 79. Word Search
- [leetcode] 79.Word Search
- 【leetcode】79. Word Search
- 79. Word Search
- 79. Word Search
- [LeetCode]79. Word Search
- 79. Word Search LeetCode
- 79. Word Search
- 79. Word Search
- 79. Word Search
- leetcode 79. Word Search
- LeetCode 79. Word Search
- LeetCode 79. Word Search
- leetcode 79. Word Search
- 贪心算法的特点
- EasyUI datagrid
- 次小生成树::相关核心代码
- Bluetooth A2DP HCI 封包分析之channel 的建立
- 代码编写
- 79. Word Search
- java线程的六大状态
- Activity的启动模式一些小重点
- ElasticSearch中From / Size介绍
- iOS用runtime给一个类动态添加方法 ---class_addMethod
- 一道内存的硬件选料题
- Spring-Aop
- Codeforces Round #424(Div.2)
- Codeforces 831D Office Keys 二分+贪心