class Solution(object):
def exist(self, board, word):
"""
:type board: List[List[str]]
:type word: str
:rtype: bool
"""
for i in range(len(board)):
for j in range(len(board[0])):
if self.search(board,word,i,j,0):
return True
return False
def search(self,board,word,i,j,idx):
if idx==len(word): return True
if 0<=i<len(board) and 0<=j<len(board[0]) and board[i][j]==word[idx]:
temp, board[i][j] = board[i][j], '0'
direction = ((1,0),(-1,0),(0,1),(0,-1))
for x, y in direction:
if self.search(board,word,i+x,j+y,idx+1): return True
board[i][j]=temp
return False
class Solution:
def exist(self, g: List[List[str]], word: str) -> bool:
R, C = len(g), len(g[0])
def spread(i, j, w):
if not w:
return True
original, g[i][j] = g[i][j], '-'
spreaded = False
for x, y in ((i-1, j), (i+1, j), (i, j-1), (i, j+1)):
if (0<=x<R and 0<=y<C and w[0]==g[x][y]
and spread(x, y, w[1:])):
spreaded = True
break
g[i][j] = original
return spreaded
for i in range(R):
for j in range(C):
if g[i][j] == word[0] and spread(i, j, word[1:]):
return True
return False
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
# i = 0
#for e in nums:
# if i < 2 or e != nums[i - 2]:
# nums[i] = e
# i += 1
#return i
n = len(nums)
if n < 3:
return n
start, tail = 0, 2
for i in range(2, n):
if nums[i] != nums[tail - 1] or nums[i] != nums[tail - 2]:
nums[tail] = nums[i]
tail += 1
return tail
刘润森!
认证博客专家
Python
Java
前端
17年就读于东莞XX学院化学工程与工艺专业,GitChat作者。Runsen的微信公众号是"Python之王",因为Python入了IT的坑,从此不能自拔。公众号内容涉及Python,Java计算机、杂谈。干货与情怀同在。喜欢的微信搜索:「Python之王」。个人微信号:RunsenLiu。不关注我公号一律拉黑!!!