500. 键盘行【我亦无他唯手熟尔】

简介: 500. 键盘行【我亦无他唯手熟尔】

500. 键盘行

给你一个字符串数组 words ,只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。

美式键盘 中:
第一行由字符 “qwertyuiop” 组成。

第二行由字符 “asdfghjkl” 组成。

第三行由字符 “zxcvbnm” 组成。


示例 1:


输入:words = [“Hello”,“Alaska”,“Dad”,“Peace”]

输出:[“Alaska”,“Dad”]

示例 2:


输入:words = [“omk”]

输出:[]

示例 3:


输入:words = [“adsdf”,“sfd”]

输出:[“adsdf”,“sfd”]


提示:


1 <= words.length <= 20

1 <= words[i].length <= 100

words[i] 由英文字母(小写和大写字母)组成

官方

class Solution {    
    public String[] findWords(String[] words) {
        List<String> list = new ArrayList<String>();
        String rowIdx = "12210111011122000010020202";
        for (String word : words) {
            boolean isValid = true;
            char idx = rowIdx.charAt(Character.toLowerCase(word.charAt(0)) - 'a');
            for (int i = 1; i < word.length(); ++i) {
                if (rowIdx.charAt(Character.toLowerCase(word.charAt(i)) - 'a') != idx) {
                    isValid = false;
                    break;
                }
            }
            if (isValid) {
                list.add(word);
            }
        }
        String[] ans = new String[list.size()];
        for (int i = 0; i < list.size(); ++i) {
            ans[i] = list.get(i);
        }
        return ans;
    }
}

相关文章
|
算法
319. 灯泡开关【我亦无他唯手熟尔】
319. 灯泡开关【我亦无他唯手熟尔】
67 0
260. 只出现一次的数字 III【我亦无他唯手熟尔】
260. 只出现一次的数字 III【我亦无他唯手熟尔】
41 0
1446. 连续字符【我亦无他唯手熟尔】
1446. 连续字符【我亦无他唯手熟尔】
49 0
598. 范围求和 II【我亦无他唯手熟尔】
598. 范围求和 II【我亦无他唯手熟尔】
60 0
|
算法
268. 丢失的数字【我亦无他唯手熟尔】
268. 丢失的数字【我亦无他唯手熟尔】
49 0
488. 祖玛游戏【我亦无他唯手熟尔】
488. 祖玛游戏【我亦无他唯手熟尔】
107 0
299. 猜数字游戏【我亦无他唯手熟尔】
299. 猜数字游戏【我亦无他唯手熟尔】
55 0
|
算法
136 137 260只出现一次的数字【我亦无他唯手熟尔】
136 137 260只出现一次的数字【我亦无他唯手熟尔】
74 0
400. 第 N 位数字【我亦无他唯手熟尔】
400. 第 N 位数字【我亦无他唯手熟尔】
67 0
407. 接雨水 II【我亦无他唯手熟尔】
407. 接雨水 II【我亦无他唯手熟尔】
41 0