给定一个单词序列,检查它是否构成一个有效单词广场。
一个有效的单词广场满足:如果第k行和第k列读取相同的字符串,
并且0≤k<max(numRows numColumns)。
两个判断
1. 判断对于的行和列是否等长
2. 判断对于的行和列中的每一个元素是否相同
class Solution(object):
def validWordSquare(self, words):
"""
:type words: List[str]
:rtype: bool
"""
n = len(words)
m = len(words[0])
if m != n:
return False
for i in range(1,n):
m = len(words[i])
c = 0
for j in range(m):
if len(words[j]) < i+1:
break
c +=1
if c != m:
return False
for j in range(m):
if words[i][j] != words[j][i]:
return False
return True
这组代码关键再这里
for i in range(1,n):
m = len(words[i])
c = 0
for j in range(m):
if len(words[j]) < i+1:
break
c +=1
if c != m:
return False
主要是用来判断行和列是不是等长的。
还有一组代码也对可以看一下。
class Solution:
"""
@param words: a list of string
@return: a boolean
"""
def validWordSquare(self, words):
# Write your code here
rnum = len(words)
cnum = len(words[0])
cnum = cnum if cnum <= rnum else rnum
for i in range(1, rnum):
if cnum < len(words[i]) and cnum <= rnum:
cnum = len(words[i])
num = min(rnum, cnum)
count =0
for i in range(rnum):
if words[i] == words[:][i]:
count +=1
if count == num:
return True
else:
return False