#779. 单词搜索(二维矩阵)
单词搜索(二维矩阵)
题目描述
给定一个二维字符矩阵 board和一个字符串 word,判断 word是否存在于矩阵中。单词需按字母顺序通过相邻单元格(上下左右)的字母构成,且同一单元格的字母不可重复使用。
输入格式
board:二维字符矩阵(如 vector<vector>),元素为字母(大小写敏感)。 word:待搜索的字符串(如 "ABCCED")。
输出格式
若 word存在于矩阵中,则输出存在单词,否则不存在单词。
样例
输入样例 1
3 4
A B C E
S F C S
A D E E
ABCCED
输出样例 1
存在单词
输入样例 2
3 3
A B C
D E F
G H I
ABCFED
输出样例 2
存在单词
输入样例 3
3 3
A B C
D E F
G H I
XYZ
输出样例 3
不存在单词
提示
解题思路:核心算法:深度优先搜索(DFS)+ 回溯 1.遍历起点:从矩阵的每个单元格出发,若单元格字符与 word首字符匹配,则启动搜索。 2.递归搜索:向上下左右四个方向扩展,检查字符是否匹配、是否越界、是否重复使用。 3.回溯标记:搜索过程中标记已访问的单元格,递归结束后恢复状态,避免影响其他路径。