888. 有效单词词广场
中文English
给定一个单词序列,检查它是否构成一个有效单词广场。
一个有效的单词广场应满足以下条件:对于满足0≤k<max(numRows numColumns)
的k
,第k
行和第k
列对应的字符串应该相同,。
样例
样例1
输入:
[
"abcd",
"bnrt",
"crmy",
"dtye"
]
输出: true
解释:
第一行和第一列都是“abcd”。
第二行和第二列都是“bnrt”。
第三行和第三列都是“crmy”。
第四行和第四列都是“dtye”。
因此,这是一个有效的单词广场.
样例2
输入:
[
"abcd",
"bnrt",
"crm",
"dt"
]
输出: true
解释:
第一行和第一列都是“abcd”。
第二行和第二列都是“bnrt”。
第三行和第三列都是“crm”。
第四行和第四列都是“dt”。
因此,这是一个有效的单词广场.
样例3
输入:
[
"ball",
"area",
"read",
"lady"
]
输出: false
解释:
第三行是 "read" 但是第三列是 "lead".
因此,这不是一个有效的单词广场.
注意事项
给定的单词数量至少为1,且不超过500
。
单词长度至少为1,不超过500
。
每个单词只包含小写英文字母a-z
。
输入测试数据 (每行一个参数)如何理解测试数据?
‘‘‘ 大致思路: 1.单次循环words,进行竖向拼接,如果当前字符串长度不够,则不拼接此字符 2.初始化res,然后每次循环完毕就会append进res里面,最后的时候判断是否相等就可以 ‘‘‘ def validWordSquare(self,words): res = [] j = 0 ##外层循环 for i in range(len(words)): current_s = ‘‘ z = 0 for j in range(len(words)): #必要判断,存在当前字符串长度不够问题,比如第四行,dt,不存在第四列 if len(words[j]) > i: ##里面是根据[1][0],[2][0],[3][0]这样加的,然后下一次循环是第二位变化,第一位不变 current_s += words[j][i] res.append(current_s) if res == words: return True return False
原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12571470.html
时间: 2024-10-10 17:53:51