单词搜索 -LintCode
来源:互联网 发布:openoffice linux下载 编辑:程序博客网 时间:2024/06/06 03:57
给出一个二维的字母板和一个单词,寻找字母板网格中是否存在这个单词。
单词可以由按顺序的相邻单元的字母组成,其中相邻单元指的是水平或者垂直方向相邻。每个单元中的字母最多只能使用一次。
样例
给出board =
[
“ABCE”,
“SFCS”,
“ADEE”
]
word = “ABCCED”, ->返回 true,
word = “SEE”,-> 返回 true,
word = “ABCB”, -> 返回 false.
#ifndef C123_H#define C123_H#include<iostream>#include<vector>#include<string>using namespace std;class Solution {public: /** * @param board: A list of lists of character * @param word: A string * @return: A boolean */ bool exist(vector<vector<char> > &board, string word) { // write your code here if (board.empty() || word.empty()) return 0; for (int i = 0; i < board.size(); ++i) { for (int j = 0; j < board[0].size(); ++j) { if (searchWord(board, i, j, 0, word)) return true; } } return false; } bool searchWord(vector<vector<char>> &v, int i, int j, int pos, string word) { if (pos >= word.size()) return true; if (i < 0 || j < 0 || i >= v.size() || j >= v[0].size() || v[i][j] != word[pos]) return false; v[i][j] ^= 100; bool res = searchWord(v, i + 1, j, pos + 1, word) || searchWord(v, i - 1, j, pos + 1, word) || searchWord(v, i, j + 1, pos + 1, word) || searchWord(v, i, j - 1, pos + 1, word); v[i][j] ^= 100; return res; }};#endif
阅读全文
0 0
- lintcode-单词搜索-123
- lintcode ----单词搜索
- LintCode 单词搜索 II
- LintCode : 单词搜索 II
- lintcode,单词搜索
- 单词搜索 -LintCode
- 单词搜索 II-LintCode
- lintcode --单词搜索
- LintCode 120-单词接龙 广度优先搜索
- LintCode 132-单词搜索II 深度优先
- DFS-lintcode单词搜索(word-search)
- LintCode 最长单词
- lintcode-单词接龙-120
- 最长单词(LintCode)
- LintCode- 单词切分
- lintcode ----最长单词
- LintCode 单词切分
- lintcode,单词切分
- Json学习笔记(二)-Gson使用
- Struts2动态Action
- Winograd大白话
- MySQL之分库分表分区
- ES6----个人笔记
- 单词搜索 -LintCode
- java 获取服务器CPU、内存、硬盘使用量
- css学习笔记之display
- Android开发之增量更新
- iOS .Crash文件分析处理办法 -symbolicatecrash
- HTML5 FLV Player
- null和String.Empty的区别是什么
- leetcode[Number of Segments in a String]//待整理多种解法
- 无限递归导致StackOverflowError