237 words
1 minute
日拱两卒(五)
2026-07-23
60
单词搜索。
在一个二维矩阵里找单词,简单搜索。
class Solution: def exist(self, board: List[List[str]], word: str) -> bool: n = len(board) m = len(board[0]) st = [[False for _ in range (m)] for _ in range (n)] dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] def dfs(x, y, u) -> bool: if word[u] != board[x][y]: return False if u == len(word) - 1: return True st[x][y] = True ok = False for i in range(4): tx = x + dx[i] ty = y + dy[i] if tx < 0 or tx >= n or ty < 0 or ty >= m: continue if st[tx][ty]: continue ok |= dfs(tx, ty, u + 1) st[x][y] = False return ok
for i in range(n): for j in range(m): if dfs(i, j, 0): return True return False59
括号生成。
生成合法括号序列,简单搜索。
class Solution: def generateParenthesis(self, n: int) -> List[str]: ans = [] s = ['.' for _ in range (2 * n)] def dfs(u, left, right): if u == 2 * n: ans.append(''.join(s)) return
if left < n: s[u] = '(' dfs(u + 1, left + 1, right) s[u] = '.'
if right < left: s[u] = ')' dfs(u + 1, left, right + 1) s[u] = '.'
dfs(0, 0, 0) return ans