給定一個字符串數組,返回那些所出現的字母在QWERTY鍵盤中同一行的字符串。數組
例如,單詞hello
中,字母h
和l
在鍵盤的第二行(或者中間那一行),剩餘字母e
和o
在第一行。故排除之。
再如,Dalas
中,全部字母都在中間那一行,則返回它。函數
個人思路是,把鍵盤中每一行出現的字母存進3個數組中(由於有3行),將每一個字符串分割成數組,判斷該數組與每一行字母數組是否有差集。若是分散在不一樣行,則一定會在與某一行有差。用array_filter函數過濾這些有差的字符串便可。.net
<?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)); }); } }
若以爲本文章對你有用,歡迎用[愛發電](https://afdian.net/@skys215)資助。