有效单词词广场——算法面试刷题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 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」