給定一個單詞列表,只返回可以使用在鍵盤同一行的字母打印出來的單詞。鍵盤如下圖所示。
?
?
示例:
輸入: ["Hello", "Alaska", "Dad", "Peace"] 輸出: ["Alaska", "Dad"]
?
注意:
- 你可以重復使用鍵盤上同一字符。
- 你可以假設輸入的字符串將只包含字母。
?
class Solution {public String[] findWords(String[] words) {int[] line = new int[26];int[] p1 = {16 ,22 ,4 ,17 ,19 ,24 ,20 ,8 ,14 ,15};int[] p2 = {0 ,18 ,3 ,5 ,6 ,7 ,9 ,10 ,11};int[] p3 = {25 ,23 ,2 ,21 ,1 ,13 ,12};for(int p : p1){line[p] = 1;}for(int p : p2){line[p] = 2;}for(int p : p3){line[p] = 3;}List<String> list = new ArrayList<>();for(String s : words){String sformat = s.toLowerCase();boolean someNo = false;for(int i = 0 ; i< sformat.length()-1;i++){if(line[sformat.charAt(i) - 'a'] != line[sformat.charAt(i+1) - 'a']){someNo = true;break;}}if(!someNo)list.add(s);}String[] a = new String[list.size()];list.toArray(a);return a;} }
?