【发布时间】:2021-11-07 08:50:16
【问题描述】:
所以我写了这段代码
def diagsDownRight(M):
n = len(M)
m = [[''] * (n - i - 1) + row + [''] * i for i, row in enumerate(M)]
return ([''.join(col) for col in zip(*m)]), [''.join(col[::-1]) for col in zip(*m)]
def diagsUpRight(M):
n = len(M)
m = [['']*i + row + ['']*(n-i-1) for i, row in enumerate(M)]
return [''.join(col) for col in zip(*m)], [''.join(col[::-1]) for col in zip(*m)]
def rows(M):
return ["".join(row) for row in M], ["".join(reversed(row)) for row in M]
def cols(M):
return ["".join(col) for col in zip(*M)], [''.join(col[::-1]) for col in zip(*M)]
def contains_word(grid: list[list[str]], w: str):
if w in diagsUpRight(grid):
return w
if w in diagsDownRight(grid):
return w
if w in rows(grid):
return w
if w in cols(grid):
return w
print(contains_word(grid=[
["r","a","w","b","i","t"],
["x","a","y","z","c","h"],
["p","q","b","e","i","e"],
["t","r","s","b","o","g"],
["u","w","x","v","i","t"],
["n","m","r","w","o","t"]]
, w='raw'))
对于此代码,如果在 rows(M)、cols(M)、diagsDownRight(M)、diagsUpRight(grid) 中找到单词 w,我想让 contains_word 返回单词 w,但是当我输入代码时,如图所示上面,输出不显示。我在这里做错了什么?
编辑我尝试这样做,但输出仍然返回 None
def contains_word(grid: list[list[str]], w: str):
for col in diagsUpRight(grid):
if w in col:
return w
for col in diagsDownRight(grid):
if w in col:
return w
for row in rows(grid):
if w in row:
return w
for col in cols(grid):
if w in col:
return w
print(contains_word(grid=[["r","a","w","b","i","t"],
["x","a","y","z","c","h"],
["p","q","b","e","i","e"],
["t","r","s","b","o","g"],
["u","w","x","v","i","t"],
["n","m","r","w","o","t"]]
, w='raw'))
【问题讨论】: