500. 键盘行
给你一个字符串数组 words ,只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。
美式键盘 中:
第一行由字符 "qwertyuiop" 组成。
第二行由字符 "asdfghjkl" 组成。
第三行由字符 "zxcvbnm" 组成。
提示:
- 1 <= words.length <= 20
- 1 <= words[i].length <= 100
- words[i] 由英文字母(小写和大写字母)组成
题解
class Solution {
String s1 = "qwertyuiop";
String s2 = "asdfghjkl";
String s3 = "zxcvbnm";
public String[] findWords(String[] words) {
List<String> ans = new ArrayList<>();
for(String word : words){
String s = word.toLowerCase(); // 转为小写进行判断
int f1 = 0, f2 = 0, f3 = 0, n = word.length();
for(int i = 0; i < n; i++){
char c = s.charAt(i);
if(s1.contains(c + "")) f1++;
else if(s2.contains(c + "")) f2++;
else f3++;
}
if(f1 == n || f2 == n || f3 == n) ans.add(word); //最后将原字符串存入列表
}
return ans.toArray(new String[ans.size()]);
}
}