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.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
}
}