給定一個(gè)單詞列表活鹰,只返回可以使用在鍵盤同一行的字母打印出來(lái)的單詞合住。鍵盤如下圖所示。
American keyboard
示例:
<pre>輸入: ["Hello", "Alaska", "Dad", "Peace"]
輸出: ["Alaska", "Dad"]
</pre>
注意:
- 你可以重復(fù)使用鍵盤上同一字符。
- 你可以假設(shè)輸入的字符串將只包含字母汁针。
class Solution {
public String[] findWords(String[] words) {
String[] str = new String[]{"QWERTYUIOPqwertyuiop","ASDFGHJKLasdfghjkl","ZXCVBNMzxcvbnm"};
int strLength = str.length;
List list = new ArrayList();
int arrayIndex = -1;
for(String word : words){//拿到每個(gè)輸入的單詞
int length = word.length();
for(int i = 0; i < strLength; i++){//遍歷該單詞
if(str[i].contains(word.substring(0,1))) {//拿該單詞的第一個(gè)字母初步判斷它在哪一行
int j = 0;
for(; j < length; j++){//遍歷該單詞的每個(gè)字母,不在這一行跳出循環(huán)
if(!str[i].contains(word.substring(j,j+1))){
break;
}
}
if(j == length){//該單詞在這一行就添加list
arrayIndex++;
list.add(word);
}
}
}
}
int listSize = list.size();
String[] array = new String[listSize];
for(int i = 0; i < listSize; i++){
array[i] =(String) list.get(i);
}
return array;
}
}