Word Search
来源:互联网 发布:知之深,爱之切 编辑:程序博客网 时间:2024/04/29 21:15
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 =
[ ["ABCE"], ["SFCS"], ["ADEE"]]word =
"ABCCED"
, -> returns true
,word =
"SEE"
, -> returns true
,word = "ABCB"
, -> returns false
.
ps: 首先找到首字符,然后四个方向搜索
class Solution {private: int flag[100][100];public: void dfs( vector<vector<char> > &board, int x, int y, string word, bool flag[100][100], int k, bool & end_flag ){if( k == word.size()-1 && board[x][y] == word[k] ){end_flag = true; return ;}if( end_flag ) return;//防止在找到该完整字符串时,继续向其他方向搜索。。。if( board[x][y] == word[k] ){flag[x][y] = true;if( (x-1) >= 0 && !flag[x-1][y] && (k+1) < word.size() )dfs( board, x-1, y, word, flag, k+1, end_flag );if( (y-1) >= 0 && !flag[x][y-1] && (k+1) < word.size() )dfs( board, x, y-1, word, flag, k+1, end_flag );if( (x+1)< board.size() && !flag[x+1][y] && (k+1) < word.size() )dfs( board, x+1, y, word, flag, k+1, end_flag );if( (y+1) < board[x].size() && !flag[x][y+1] && (k+1) < word.size() )dfs( board, x, y+1, word, flag, k+1, end_flag );flag[x][y] = false;}else return;} bool exist(vector<vector<char> > &board, string word) {if( !word.length() ) return true; int col = board.size(); for( int i = 0; i < board.size(); ++i )for( int j = 0; j < board[i].size(); ++j ){if( board[i][j] == word[0] ){memset(flag,false,sizeof(flag));int k = 0;bool _end = false;dfs( board, i, j, word, flag, 0, _end );if( _end ) return true;}}return false;}};
0 0
- Word Search
- Word Search
- word search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- 2015-第4周项目3-用对象数组操作长方柱类
- 【leetcode】Unique Paths
- 正则表达式的贪婪与懒惰模式
- 菜单
- hdu1024 Max Sum Plus Plus(动态规划)
- Word Search
- leetCode 190-Reverse Bits
- 重载函数sroot3次,让它返回整数、长整数、双精度数的二次方根
- opencv 读入图像代码
- 状态模式
- 第二章第十三题
- 去掉thinkphp访问路径中的index.php
- 将matlab改为黑色主题monokai的方法
- LTE中的资源块的问题