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

原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12571470.html

时间: 2024-08-02 12:00:47

888. 有效单词词广场*的相关文章

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

给定一个单词序列,检查它是否构成一个有效单词广场.一个有效的单词广场应满足以下条件:对于满足0≤k<max(numRows numColumns)的k,第k行和第k列对应的字符串应该相同,. 给定的单词数量至少为1,且不超过500.单词长度至少为1,不超过500.每个单词只包含小写英文字母a-z. 您在真实的面试中是否遇到过这个题?  是 题目纠错 样例 样例1 输入: [ "abcd", "bnrt", "crmy", "dty

黑科技玩出跨界营销新姿势,泡单词携手百果园深化品牌影响力

1月10日起,广州.佛山.珠海三地的百果园门店,被家长群体给包了场.原因只是其和泡单词联手推出特惠活动,买水果就送科技感十足的AR互动绘本. 一个黑科技就能搅动无数家长的心?没这么简单. 又一次跨界营销?关键在于实现场景及流量互通 据悉,百果园和泡单词都是第一次尝试跨界营销. 一个生鲜.一个教育,从线下到线上,这样的一次活动完全是一场标准的互联网+状态下的跨界营销,亦是近期营销领域从饥饿营销.参与感营销等老套路中跳脱出来,形成的主流营销模式. 就在此前的2016年圣诞节,一嗨租车就和NBA进行过

按长度统计输入单词的出现频率,并以直方图的形式打印。

1-13 #include <stdio.h> #define OUT 0#define IN 1#define MAXHIST 15 //最大直方图#define MAXWORD 11 //最大单词长度 int main(){ int c, i ,nc, state; //当前字符, , ,状态 int len; //每个直方图的长 int maxvalue; //wl[]的最大值(单词最高频率) int ovflow;//超出长度(MAXWORD)的单词数 int wl[MAXWORD];

微信小程序源码下载(200多个)

微信小程序源码下载汇总,点击标题进入对应的微信小程序下载页面. 最新 demo源码(点击标题进入帖子下载) 描述 1 微信小程序 会议室预定小程序 微信小程序 会议室预定小程序**** 本内容被作者隐藏 **** 2 微信小程序-双人五子棋小游戏 微信小程序-双人五子棋小游戏**** 本内容被作者隐藏 **** 3 打卡签到小程序 用微信小程序实现的一个简单的打卡签到的小程序拒绝 4 微信小程序---左滑删除 微信小程序---左滑删除**** 本内容被作者隐藏 **** 5 一个借钱的记事本的微

vim编辑器详解

一.vim简介 vi: Visual Interface,文本编辑器 文本: ASCII, Unicode 文本编辑种类: 行编辑器: sed 全屏编辑器: nano, vi vim – Vi Improved 其他编辑器: gedit 一个简单的图形编辑器 gvim 一个Vim编辑器的图形版本 二.常见使用方法: vim [OPTION]- FILE- 文件操作: 打开文件: +#: 打开文件后,直接让光标处于第#行的行首 +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹

linux中vim编辑器各种常用命令及用法

linux中vim编辑器的常用命令以及用法(注意严格区分大小写以及中英文): vim编辑器有三种模式,分别是:编辑模式,输入模式以及末行模式. 模式转换: 编辑模式>>>输入模式: i:在光标所在字符前面,转为输入模式(即转完后在光标所在字符前输入):                      I:在光标所在行的行首,转为输入模式(即转完后在行首输入,不包括行首空                         白) a:在光标所在字符后,转为输入模式(即转完后在光标所在字符后面输入):

Linux学习日志2-vim使用基础

vim是linux操作系统下的一个文本编辑工具,功能非常强大,但刚学习起来比较复杂.vim的所有功能要讲明白得有几百页,在这里只是记录一下vim的一些基本用法. 首先vim打开文件的三种方式: vim +# xxx(#是数字):表示打开xxx文件并将光标定位到指定行. vim -o xx1 xx2 xx3:表示同时打开三个文件,垂直分割显示 vim -O xx1 xx2 xx3:表示同时打开三个文件,水平分割显示 多个文件间跳转:键入ctrl+w后:→向左.←向右.↑向上.↓向下 vim打开文件

M25-3

懒人少语之第三周 `vim编辑器` vi: Visual Interface 文本编辑器 vim带颜色~`不过需要是vim觉得你是配置文件才会有高亮颜色,普通复制配置文件未必有高亮` vim通常有三种模式,默认下是命令模式,还有插入/编辑模式`i/o`和扩展命令模式`set nu`和格式化模式`v/V` 默认状态下是命令模式 vim +10 /etc/passwd `+数字` 跳转到某行 vim +/^wang /etc/passwd `+模式` 支持正则表达式跳转`光标处于第一个被PATTER

grep及扩展正则表达式

正则表达式有两类,分为基本正则表达式和扩展正则表达式,是使用命令egrep来使用扩展正则表达式,它与grep很多功能相同,仅在元字符上实现了些扩展,在元字符的表示上与基本正则表达式略不同. 1. 命令格式: egrep [option] pattern file 2. 命令功能: 用于过滤/搜索的特定字符.可使用扩展正则表达式能多种命令配合使用,使用上十分灵活 . 3. 命令参数: egrep等同于grep -E选项 扩展正则表达式的元字符: 字符匹配: . #匹配单个非换行符的字符 如:'gr