博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
79. Word Search
阅读量:5117 次
发布时间:2019-06-13

本文共 1363 字,大约阅读时间需要 4 分钟。

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.

Example:

board =[  ['A','B','C','E'],  ['S','F','C','S'],  ['A','D','E','E']]Given word = "ABCCED", return true.Given word = "SEE", return true.Given word = "ABCB", return false.
class Solution {    public:        //遍历回溯,采取一个特殊处理:如果匹配到相同字符,则将该字符先置为'0',回溯时恢复原字符,以免重复使用    bool exist(vector
>& board, string word) { if(board.size()==0){ return false; } for(int i=0; i
>& board, int i, int j, string word, int index){ if(index>=word.size()) //搜索完成条件 return true; if(i<0||i>=board.size()||j<0||j>=board[0].size()) //搜索结束(不成功)条件 return false; if(board[i][j]!=word[index]){ //当前不匹配 return false; } char temp = board[i][j]; //当前匹配,并从邻域搜索是否匹配 board[i][j]='0'; bool res = dfs(board, i+1, j, word, index+1)||dfs(board, i, j+1, word, index+1)||dfs(board, i-1, j, word, index+1)||dfs(board, i, j-1, word, index+1); board[i][j]=temp; return res; }};

 

转载于:https://www.cnblogs.com/duan-decode/p/9691419.html

你可能感兴趣的文章
SpringMVC学习总结(三)——Controller接口详解(1)
查看>>
RGB色彩空间和HSV色彩空间的理解
查看>>
牛的障碍Cow Steeplechase
查看>>
Zookeeper选举算法原理
查看>>
嵌入式成长轨迹52 【Zigbee项目】【CC2430基础实验】【在PC用串口收数并发数】...
查看>>
函数随笔
查看>>
哈尔滨工程大学ACM预热赛(A,C,H,I)
查看>>
3月29日AM
查看>>
利用IP地址查询接口来查询IP归属地
查看>>
Dijkstra算法——最短路径(转)
查看>>
HTML元素定义 ID,Class,Style的优先级
查看>>
【实数二分/前缀和维护】Best Cow Fences
查看>>
构造者模式
查看>>
[转][C#]Combobox 行高
查看>>
什么是IDS/IPS?
查看>>
JavaScript:学习笔记(3)——正则表达式的应用
查看>>
LeetCode:旋转链表【61】
查看>>
浮点数转化为字符串
查看>>
ssRs父子维度
查看>>
关押罪犯
查看>>