Solution 1 - Keyboard Row Set Check
A word is valid if all its letters belong to the same keyboard row.
A word is valid if all its letters belong to the same keyboard row.
""" 0500.1 - Keyboard Row - Solution 1 - Row Set Check """
from typing import List
class Solution:
def findWords(self, words: List[str]) -> List[str]:
rows = [set("qwertyuiop"), set("asdfghjkl"), set("zxcvbnm")]
out = []
for w in words:
s = set(w.lower())
if any(s <= r for r in rows):
out.append(w)
return out
if __name__ == "__main__":
print(Solution().findWords(["Hello","Alaska","Dad","Peace"])) # ["Alaska","Dad"]package main
import "strings"
func findWords(words []string) []string {
rows := []string{"qwertyuiop", "asdfghjkl", "zxcvbnm"}
out := []string{}
for _, w := range words {
lw := strings.ToLower(w)
for _, row := range rows {
ok := true
for i := 0; i < len(lw); i++ {
if !strings.ContainsRune(row, rune(lw[i])) {
ok = false
break
}
}
if ok {
out = append(out, w)
break
}
}
}
return out
}
func main() {}