日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Leetcode】79.单词搜索

發(fā)布時(shí)間:2025/6/17 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Leetcode】79.单词搜索 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目

給定一個(gè)二維網(wǎng)格和一個(gè)單詞,找出該單詞是否存在于網(wǎng)格中。

單詞必須按照字母順序,通過相鄰的單元格內(nèi)的字母構(gòu)成,其中“相鄰”單元格是那些水平相鄰或垂直相鄰的單元格。同一個(gè)單元格內(nèi)的字母不允許被重復(fù)使用。

示例:

board =
[
['A','B','C','E'],
['S','F','C','S'],
['A','D','E','E']
]

給定 word = "ABCCED", 返回 true.
給定 word = "SEE", 返回 true.
給定 word = "ABCB", 返回 false.

題解

這個(gè)題目拿到題目就應(yīng)該能想到是用DFS的題目,因?yàn)檫@完完全全就是DFS,沒有做任何的變形,關(guān)于DFS,這里就不重復(fù)講解。

推薦一個(gè)b站上的視頻,不熟悉的同學(xué)可以回顧一下。

https://www.bilibili.com/vide...

熟悉的同學(xué)直接看代碼吧

java

class Solution {public boolean exist(char[][] board, String word) {if (word == null || word.length() == 0) {return true;}char[] chs = word.toCharArray();for (int i = 0; i < board.length; i++) {for (int j = 0; j < board[0].length; j++) {if (dfs(board, chs, 0, i, j)) {return true;}}}return false;}private boolean dfs(char[][] board, char[] words, int index, int x, int y) {if (index == words.length) {return true;}if (x < 0 || x == board.length || y < 0 || y == board[0].length) {return false;}if (board[x][y] != words[index]) {return false;}char source = board[x][y];board[x][y] = '\0';boolean exist = dfs(board, words, index + 1, x, y + 1)|| dfs(board, words, index + 1, x, y - 1)|| dfs(board, words, index + 1, x + 1, y)|| dfs(board, words, index + 1, x - 1, y);board[x][y] = source;return exist;} }

python

class Solution:def dfs(self, board, word, index, x, y):if not board or index == len(word):return Trueif x < 0 or x == len(board) or y < 0 or y == len(board[0]):return Falseif board[x][y] != word[index]:return Falsesource = board[x][y]board[x][y] = '\0'exist = self.dfs(board, word, index + 1, x, y + 1) or self.dfs(board, word, index + 1, x, y - 1) or self.dfs(board, word, index + 1, x + 1, y) or self.dfs(board, word, index + 1, x - 1, y)board[x][y] = sourcereturn existdef exist(self, board, word):""":type board: List[List[str]]:type word: str:rtype: bool"""if len(word) == 0:return Falsefor i in range(len(board)):for j in range(len(board[0])):if self.dfs(board, word, 0, i, j):return Truereturn False

熱門閱讀

  • MySQL索引背后的數(shù)據(jù)結(jié)構(gòu)及算法原理
  • 【Leetcode】78. 子集
  • 【Leetcode】77. 組合

總結(jié)

以上是生活随笔為你收集整理的【Leetcode】79.单词搜索的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。