500. Keyboard Row

题目链接

500. Keyboard Row

题目分析

给定一个字符串数组,返回那些所出现的字母在QWERTY键盘中同一行的字符串。

例如,单词hello中,字母hl在键盘的第二行(或者中间那一行),剩余字母eo在第一行。故排除之。
再如,Dalas中,所有字母都在中间那一行,则返回它。

思路

我的思路是,把键盘中每一行出现的字母存进3个数组中(因为有3行),将每个字符串分割成数组,判断该数组与每一行字母数组是否有差集。如果分散在不同行,则必定会在与某一行有差。用array_filter函数过滤这些有差的字符串即可。

最终代码

<?php
class Solution {function findWords($words) {return array_filter($words, function($val){$val = array_unique(str_split(strtolower($val)));$q = ['q','w','e','r','t','y','u','i','o','p'];$a = ['a','s','d','f','g','h','j','k','l'];$z = ['z','x','c','v','b','n','m'];return !(array_diff($val,$q) && array_diff($val,$a)&&array_diff($val,$z));});}
}
复制代码

若觉得本文章对你有用,欢迎用爱发电资助。

Leetcode PHP题解--D25 500. Keyboard Row相关推荐

  1. 【leetcode】500. Keyboard Row

    问题描述: Given a List of words, return the words that can be typed using letters of alphabet on only on ...

  2. LeetCode 500. Keyboard Row

    Given a List of words, return the words that can be typed using letters of alphabet on only one row' ...

  3. 500. Keyboard Row

    此题要求在input string array中找出能被一行键盘打出来的string,很有意思的一题,有很多amazing的解法: Solution 1:一行函数解爆它 public String[] ...

  4. LeetCode/LintCode 题解丨一周爆刷字符串:URL 编码

    描述 给出一个代表网址 host 的字符串 base_url,和代表查询参数的列表 query_params_list,你需要返回带查询参数的完整 URL. 查询参数列表由一些包含两个元素的数组组成, ...

  5. LeetCode/LintCode 题解丨一周爆刷双指针:最小范围

    描述 有k个升序排列的数组,寻找一个最小范围,使每个数组中至少有一个元素被包含. 范围[a,b]比范围[c,d]小,当且仅当b-a < d-c,或是a < c且b-a == d-c. 给定 ...

  6. LeetCode/LintCode 题解丨一周爆刷字符串:简化路径

    描述 给定一个文件的绝对路径(Unix-style),请进行路径简化. Unix中, . 表示当前目录, - 表示父目录. 结果必须以 / 开头,并且两个目录名之间有且只有一个 /.最后一个目录名(如 ...

  7. LeetCode/LintCode 题解丨一周爆刷字符串:神奇字符串

    描述 一个神奇字符串S仅包含'1'和'2',并遵守以下规则: 字符串S是神奇的,因为连接字符'1'和'2'的连续出现次数会产生字符串S本身. 字符串S的前几个元素如下:S = "122112 ...

  8. LeetCode/LintCode 题解丨一周爆刷双指针:神奇字符串

    描述 一个神奇字符串S仅包含'1'和'2',并遵守以下规则: 字符串S是神奇的,因为连接字符'1'和'2'的连续出现次数会产生字符串S本身. 字符串S的前几个元素如下:S = "122112 ...

  9. LeetCode/LintCode 题解丨一周爆刷字符串:乱序字符串

    描述 给出一个字符串数组S,找到其中所有的乱序字符串(Anagram). 如果一个字符串是乱序字符串,那么他存在一个字母集合相同. 但顺序不同的字符串也在S中. 所有的字符串都只包含小写字母. 点击查 ...

最新文章

  1. Python源码剖析学习二
  2. 【机器学习入门到精通系列】Logistic回归多分类图示
  3. springweb拦截器
  4. JSP tomcat 更新不生效
  5. CentOS设置网卡成DHCP动态获取IP
  6. 设备信息获取以及唯一标识资料
  7. C与C++ 算法笔记中的代码
  8. httppost请求工具类
  9. javascript编写1加到100函数
  10. CRAFT: Character Region Awareness for Text Detection ---- 论文阅读笔记
  11. 深圳首辆数字人民币主题观光巴士亮相
  12. 百度的网盟推广图片尺寸总结
  13. LaTeX 写作: 算法代码排版 --latex2e范例总结
  14. win10wifi间歇性断网重启后恢复_如何解决win10无线网间歇性掉线
  15. 2021届 美的笔试 C++开发工程师
  16. 语言-英语翻译(edx-datascientist _A Very Short History Of Data Science)
  17. github搭建自己的博客网站
  18. matlab验证dtft移位性质,数字信号处理教程:MATLAB释义与实现(第2版)
  19. 大数据处理技术之hadoop概览
  20. 【无标题】第一条博客

热门文章

  1. idea数字栏符号含义_关于铂金钻戒的几个常见数字符号含义,你都了解吗
  2. html5+调用safari,Safari浏览器不酷,HTML5无效元素; JavaScript是
  3. java runtime environment 官网_Java Runtime Environment SE Development Kit
  4. 攻防世界php2_攻防世界-php2
  5. vlookup 2张表 显示na_Vlookup函数的这7个应用技巧都不掌握,那就真的Out了
  6. c语言二级试题讲解,C语言试题,二级C语言试题讲解(9页)-原创力文档
  7. JAVA用多线程反而变慢了_Java中使用多线程不能明显提高程序效率的一些原因
  8. Java中继承、接口、多态的作用详解(纯理论)
  9. git 上传代码到指定仓库_初次使用git上传代码到github远程仓库
  10. cpu java poi 导出_java基于poi导出excel透视表代码实例