给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。
示例:
输入: ["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;} }