代码长了些,但还是比较简单的
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 }