20211031 leetcode打卡 键盘行(难度-简单)

题目:

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

美式键盘 中:

第一行由字符 "qwertyuiop" 组成。
第二行由字符 "asdfghjkl" 组成。
第三行由字符 "zxcvbnm" 组成。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/keyboard-row
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

eg:

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

代码:
执行用时 : 3ms
内存消耗 : 36.3MB

class Solution {
    public String[] findWords(String[] words) {
        String s1 = "qwertyuiop";
        String s2 = "asdfghjkl";
        String s3 = "zxcvbnm";
        List<String> list=new ArrayList<>();
        Collections.addAll(list,words);
        for (int i = 0; i < words.length; i++) {
            String s = words[i];//获取到字符串
            char[] c = s.toCharArray();
            int flag = 0;
            if (s1.contains(String.valueOf(c[0]).toLowerCase())) {
                flag = 1;//首字母在第一行
            } else if (s2.contains(String.valueOf(c[0]).toLowerCase())) {
                flag = 2;//首字母在第二行
            } else {
                flag = 3;//首字母在第三行
            }
            boolean b = false;//是否满足被移除的条件
        switch (flag){
            case 1:
                for (char cc:c
                     ) {if(!s1.contains(String.valueOf(cc).toLowerCase())){
                         b=true;
                         break;
                }

                }
                break;
            case 2:
                for (char cc:c
                     ) {
                    System.out.println(String.valueOf(cc).toLowerCase());
                    if(!s2.contains(String.valueOf(cc).toLowerCase())){
                    b=true;
                    break;
                }
                }
                break;
            case 3:
                for (char cc:c
                ) {if(!s3.contains(String.valueOf(cc).toLowerCase())){
                    b=true;
                    break;
                }

                }
        }

        if(b==true){
            list.set(i,"需要移除");
        }
        }
        List<String> result=new ArrayList<>();
        for (int i = 0; i <list.size() ; i++) {
            if(!list.get(i).equals("需要移除")){
                result.add(list.get(i));
            }
        }
        
         return result.toArray(new String[result.size()]);
    }
}

  

posted @ 2021-10-31 21:26  skystrivegao  阅读(45)  评论(0)    收藏  举报