标题:500键盘行-简单
题目
给你一个字符串数组
words
,只返回可以使用在 美式键盘 同一行的字母打印出来的单词。
- 第一行由字符
"qwertyuiop"
组成。- 第二行由字符
"asdfghjkl"
组成。- 第三行由字符
"zxcvbnm"
组成。
示例1
输入:words = ["Hello","Alaska","Dad","Peace"]
输出:["Alaska","Dad"]
示例2
输入:words = ["omk"]
输出:[]
示例3
输入:words = ["adsdf","sfd"]
输出:["adsdf","sfd"]
提示
1 <= words.length <= 20
1 <= words[i].length <= 100
words[i]
由英文字母(小写和大写字母)组成
代码Java
public String[] findWords(String[] words) {
StringBuilder ans = new StringBuilder();
int[] rows = {2,3,3,2,1,2,2,2,1,2,2,2,3,3,1,1,1,1,2,1,1,3,1,3,1,3};
int index;
for (int i = 0; i < words.length; i++) {
String s = words[i].toLowerCase();
int count = rows[s.charAt(0) - 97];
int j;
for (j = 0; j < s.length(); j++) {
index = s.charAt(j) - 97;
if (rows[index] != count)
break;
}
if (j == s.length()) {
ans.append(words[i]);
ans.append("-");
}
}
String[] str = ans.toString().split("-");
if (str[0].length() == 0) {
String[] strNull = new String[0];
return strNull;
}
return str;
}