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

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

给定的单词数量至少为1,且不超过500
单词长度至少为1,不超过500
每个单词只包含小写英文字母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".

因此,这不是一个有效的单词广场.

我的代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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

  参考代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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

  

posted @   bonelee  阅读(368)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示