• LeetCode 500. Keyboard Row (键盘行)


    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.


    American keyboard


    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

  • 相关阅读:
    hadoop 2.7 添加或删除datanode节点
    hadoop HA集群的安装
    Linux-PAM认证
    [Notice]博客地址转移 vitostack.com
    WPF 自定义 MessageBox (相对完善版 v1.0.0.6)
    python2.7 倒计时
    Hadoop Streaming框架使用(二)
    Hadoop错误码速查
    Hadoop Streaming框架使用(一)
    python清空列表的方法
  • 原文地址:https://www.cnblogs.com/jimmycheng/p/7824947.html
Copyright © 2020-2023  润新知