当前位置: 首页 > 图灵资讯 > 技术篇> 有效单词词广场——算法面试刷题5(for google),考察数学

有效单词词广场——算法面试刷题5(for google),考察数学

来源:图灵教育
时间:2023-06-01 09:54:17

给定一个单词序列,检查它是否构成一个有效的单词广场。有效的单词广场应满足以下条件:满足要求0≤k<max(numRows numColumns)k,第k行和第k列对应的字符串应相同。

给定的单词数量至少为1,且不超过1500。单词长度至少为1,不超过1500。每个单词只包含小写英文字母a-z

你在真实的面试中遇到过这个问题吗?是的

题目纠错

样例

样例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".因此,这不是一个有效的单词广场.

class Solution:    """    @param words: a list of string    @return: a boolean    """    def validWordSquare(self, words):        # Write your code here        r,c = len(words), len(words[0])        if r != c:            return False        for i in range(r):            for j in range(i+1, r):                if words[i][j] != words[j][i]:                    return False        return True

  参考代码:

class Solution:    """    @param words: a list of string    @return: return a boolean    """    def validWordSquare(self, words):        # write your code here        n, m = len(words), len(words[0])        if(n != m):            return False        for i in range(n):        for j in range(m):        if(j >= n or i >= m or not(words[i][j] == words[j][i])):        return False        return True