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 <= 201 <= words[i].length <= 100words[i] consists of English letters (both lowercase and uppercase).import java.util.Locale
class Solution {
private fun check(str: String, word: String): Boolean {
for (ch in word.toCharArray()) {
if (str.indexOf(ch) < 0) {
return false
}
}
return true
}
fun findWords(words: Array<String>): Array<String?> {
val arr: MutableList<String> = ArrayList()
for (word in words) {
val w = word.lowercase(Locale.getDefault())
if (check("qwertyuiop", w) || check("asdfghjkl", w) || check("zxcvbnm", w)) {
arr.add(word)
}
}
var ans: Array<String?>
ans = arr.toTypedArray()
return ans
}
}