Given a List of words, return the words that can be typed using letters of alphabet on only one row's of American keyboard like the image below.


LeetCode 500. Keyboard Row (键盘行)


Example 1:

Input: ["Hello", "Alaska", "Dad", "Peace"]
Output: ["Alaska", "Dad"]

 

Note:

  1. You may use one character in the keyboard more than once.
  2. You may assume the input string will only contain letters of alphabet.

 

 


题目标签:Hash Table

  题目给了我们一个words array,让我们判断每一个word 中的 chars 是否都来自于键盘上的同一行。

  利用HashMap 把键盘上的3行 chars 保存:char 当作 key;行数 当作 value。

  接着遍历words,检查每一个word。

 

 

Java Solution:

Runtime beats 68.36% 

完成日期:06/07/2017

关键词:HashMap

关键点:char 当作 key;行数 当作 value

 1 class Solution 
 2 {
 3     public String[] findWords(String[] words) 
 4     {
 5         HashMap<Character, Integer> map = new HashMap<>();
 6         List<String> resList = new ArrayList<>();
 7         
 8         String row1 = "qwertyuiop";
 9         String row2 = "asdfghjkl";
10         String row3 = "zxcvbnm";
11         
12         // set up the map
13         for(char c: row1.toCharArray())
14             map.put(c, 1);
15         
16         for(char c: row2.toCharArray())
17             map.put(c, 2);
18         
19         for(char c: row3.toCharArray())
20             map.put(c, 3);
21         
22         
23         // iterate each word to check all chars are from one row
24         for(String word: words)
25         {
26             char[] wordChars = word.toLowerCase().toCharArray();
27             int rowNumber = map.get(wordChars[0]);
28             boolean add = true;
29             
30             for(char c: wordChars)
31             {
32                 if(rowNumber != map.get(c))
33                 {
34                     add = false;
35                     break;
36                 }
37                    
38             }
39             
40             if(add)
41                 resList.add(word);
42         }
43         
44         String[] res = new String[resList.size()];
45         
46         for(int i=0; i<res.length; i++)
47             res[i] = resList.get(i);
48         
49         return res;
50     }
51 }

参考资料:N/A  

 

LeetCode 题目列表 - LeetCode Questions List

相关文章:

  • 2021-05-15
  • 2021-09-15
  • 2021-08-12
  • 2021-10-15
  • 2022-12-23
  • 2021-12-18
  • 2022-12-23
猜你喜欢
  • 2021-11-22
  • 2021-08-02
  • 2022-12-23
  • 2022-01-03
  • 2021-05-24
  • 2021-10-21
相关资源
相似解决方案