LeetCode: Keyboard Row

代码长了些,但还是比较简单的

 1 public class Solution {
 2     public String[] findWords(String[] words) {
 3         List<String> ansList = new ArrayList<String>();
 4         Map<Character, Integer> charMap = new HashMap<Character, Integer>();
 5         charMap.put('q', 1);charMap.put('w', 1);charMap.put('e', 1);charMap.put('r', 1);charMap.put('t', 1);
 6         charMap.put('y', 1);charMap.put('u', 1);charMap.put('i', 1);charMap.put('o', 1);charMap.put('p', 1);
 7         charMap.put('a', 2);charMap.put('s', 2);charMap.put('d', 2);charMap.put('f', 2);charMap.put('g', 2);
 8         charMap.put('h', 2);charMap.put('j', 2);charMap.put('k', 2);charMap.put('l', 2);charMap.put('z', 3);
 9         charMap.put('x', 3);charMap.put('c', 3);charMap.put('v', 3);charMap.put('b', 3);charMap.put('n', 3);
10         charMap.put('m', 3);
11         for(int i = 0; i < words.length; i++) {
12             boolean isSame = true;
13             Character c = new Character(words[i].charAt(0));
14             int pos = charMap.get(Character.toLowerCase(c));
15             for (int j = 1; j < words[i].length(); j++) {
16                 c = new Character(words[i].charAt(j));
17                 if (pos != charMap.get(Character.toLowerCase(c))) {
18                     isSame = false;
19                     break;
20                 }
21             }
22             if (isSame == true)
23                 ansList.add(words[i]);
24         }
25         String[] ans = new String[ansList.size()];
26         for (int i = 0; i < ansList.size(); i++) {
27             ans[i] = ansList.get(i);
28         }
29         return ans;
30     }
31 }
原文地址:https://www.cnblogs.com/yingzhongwen/p/6437128.html