• 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
  • 相关阅读:
    Oracle 11 安装 提示环境不满足最低要求解决方案
    sys.argv[]的用法简明解释
    (转载)Pycharm 新版本打开md文件卡死-解决办法
    csv模块
    算法笔记——【动态规划】矩阵连乘问题——备忘录法
    Clion配置MingGW报错test cmake run with errors解决方法
    主定理(Master Theorem)与时间复杂度的计算
    UML笔记
    分治法+时间复杂度分析
    数字图像处理DIP 学习笔记
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12571470.html
Copyright © 2020-2023  润新知