500. 键盘行

500. 键盘行

给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。
American keyboard
示例:

输入: ["Hello", "Alaska", "Dad", "Peace"]
输出: ["Alaska", "Dad"]

注意:

你可以重复使用键盘上同一字符。
你可以假设输入的字符串将只包含字母。

代码如下:

class Solution {
    /**
     * @param String[] $words
     * @return String[]
     */
    function findWords($words) {
        $letters = ['qwertyuiop', 'asdfghjkl', 'zxcvbnm'];
        $result = [];
        foreach ($letters as $k => $letterItem) {
            $letters[$k] = str_split($letterItem);
        }
        foreach ($words as $key => $item) {
            // 单词转小写且分割
            $words[$key] = str_split($item);
        }
        $result = [];
        foreach ($words as $key => $items) {
            $totalItem = [];
            foreach ($items as $k => $item) {
                if (in_array($item, $letters[0])) {
                    $totalItem[$k] = '1';
                }elseif (in_array($item, $letters[1])) {
                    $totalItem[$k] = '2';
                }elseif (in_array($item, $letters[2])) {
                    $totalItem[$k] = '3';
                }
            }
            if (count(array_unique($totalItem)) == 1) {
                $result[] = implode('', $items);
            }
        }
        return $result;
    }
}

本文链接:https://itarvin.com/detail-139.aspx

登录或者注册以便发表评论

登录

注册