MarcusV(南墙大佬的搬运工)

南墙大佬的CSDN博客地址

导航

Java实现 LeetCode 500 键盘行

500. 键盘行

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

在这里插入图片描述

示例:

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

注意:

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

class Solution {
     public String[] findWords(String[] words) 
    {
        String[] rec = new String[3];
        rec[0] = "qwertyuiop";
        rec[1] = "asdfghjkl";
        rec[2] = "zxcvbnm";
        

        List<String> list = new ArrayList<>();
 
        for(String str : words)
        {
            for(int j = 0; j < 3; j++)
            {
                boolean flag = true;
 
                for(int k = 0; k < str.length(); k++)
                {
                    char ch = str.charAt(k);

                    //转换成小写
                    if(ch >= 'A' && ch <= 'Z')
                        ch = (char)(ch+32);
                    
                    //在这一行中找不到这个单词,换下一行
                    if(rec[j].indexOf(ch) == -1)
                    {
                        flag = false;
                        break;
                    }
                }
 
                if(flag == true)
                {
                    list.add(str);
                    break;
                }  
            }
        }   
        return list.toArray(new String[]{});

    }
}

posted on 2020-03-21 22:46  MarcusV  阅读(41)  评论(0编辑  收藏  举报