1.第一题
class Solution:
def exist(self, board: List[List[str]], word: str) -> bool:
r,c=len(board),len(board[0])
ans=[]
for i in range(r):
for j in range(c):
if board[i][j]==word[0]:
if self.dfs(board,i,j,word):return True
return False
def dfs(self,tmp,i,j,word):
if not word:return True
if not(i>=0 and i<len(tmp)) or not(j>=0 and j<len(tmp[0])):
return False
if not tmp[i][j]==word[0]:return False
tmp[i][j]+=' '
res=self.dfs(tmp,i+1,j,word[1:]) or\
self.dfs(tmp,i-1,j,word[1:]) or \
self.dfs(tmp,i,j+1,word[1:]) or \
self.dfs(tmp,i,j-1,word[1:])
tmp[i][j]=tmp[i][j][:-1]
return res
2.第二题:
用python集合比较:
class Solution:
def findWords(self, words: List[str]) -> List[str]:
demo1=set('qwertyuiop')
res=[]
demo2=set('asdfghjkl')
demo3=set('zxcvbnm')
for word in words:
word_set=set(word.lower())
if word_set<=demo1 or word_set<=demo2 or word_set<=demo3:
res.append(word)
return res