Leetcode PHP题解--D25 500. Keyboard Row
生活随笔
收集整理的這篇文章主要介紹了
Leetcode PHP题解--D25 500. Keyboard Row
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
500. Keyboard Row
題目鏈接
500. Keyboard Row
題目分析
給定一個字符串數組,返回那些所出現的字母在QWERTY鍵盤中同一行的字符串。
例如,單詞hello中,字母h和l在鍵盤的第二行(或者中間那一行),剩余字母e和o在第一行。故排除之。
再如,Dalas中,所有字母都在中間那一行,則返回它。
思路
我的思路是,把鍵盤中每一行出現的字母存進3個數組中(因為有3行),將每個字符串分割成數組,判斷該數組與每一行字母數組是否有差集。如果分散在不同行,則必定會在與某一行有差。用array_filter函數過濾這些有差的字符串即可。
最終代碼
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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql下count(*)和count
- 下一篇: 重温CLR(十) 字符、字符串和文本处理