Easy
Given an array of strings words
, return the words that can be typed using letters of the alphabet on only one row of American keyboard like the image below.
In the American keyboard:
"qwertyuiop"
,"asdfghjkl"
, and"zxcvbnm"
.Example 1:
Input: words = [“Hello”,”Alaska”,”Dad”,”Peace”]
Output: [“Alaska”,”Dad”]
Example 2:
Input: words = [“omk”]
Output: []
Example 3:
Input: words = [“adsdf”,”sfd”]
Output: [“adsdf”,”sfd”]
Constraints:
1 <= words.length <= 20
1 <= words[i].length <= 100
words[i]
consists of English letters (both lowercase and uppercase).import java.util.ArrayList;
import java.util.List;
public class Solution {
private boolean check(String str, String word) {
for (char ch : word.toCharArray()) {
if (str.indexOf(ch) < 0) {
return false;
}
}
return true;
}
public String[] findWords(String[] words) {
List<String> arr = new ArrayList<>();
for (String word : words) {
String w = word.toLowerCase();
if (check("qwertyuiop", w) || check("asdfghjkl", w) || check("zxcvbnm", w)) {
arr.add(word);
}
}
String[] ans = new String[arr.size()];
ans = arr.toArray(ans);
return ans;
}
}