zoukankan      html  css  js  c++  java
  • 888. 有效单词词广场*

    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
  • 相关阅读:
    Visual Studio 和 c# 正则表达式
    程序员DD 《Spring boot教程系列》补充
    c# 多线程编程中AutoResetEvent和ManualResetEvent
    c# 事件和EventManager
    卸载重装Mysql
    c# 语法要点速览
    在高分屏正确显示CHM文件
    ss user-rule自定义规则并硬连接到OneDrive进行自动同步
    利用webmagic获取天猫评论
    使用Selenium对新浪微博模拟登录
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12571470.html
Copyright © 2011-2022 走看看