From c145fbb0137e61d512e38acab0a9444b43943647 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Sun, 31 Aug 2025 08:24:57 -0600 Subject: 500. keyboard row --- keyboard_row.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 keyboard_row.py (limited to 'keyboard_row.py') diff --git a/keyboard_row.py b/keyboard_row.py new file mode 100644 index 0000000..e4e92d8 --- /dev/null +++ b/keyboard_row.py @@ -0,0 +1,32 @@ +# 500. Keyboard Row + +""" +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. note that the strings are case insensitive, both lowercased and +uppercased of the same letter are treated as if they are at the same row. +""" + + +class Solution(object): + def findWords(self, words): + """ + :type words: List[str] + :rtype: List[str] + """ + l1 = set("qwertyuiop") + l2 = set("asdfghjkl") + l3 = set("zxcvbnm") + ans = [] + for i in words: + curr = set(i.lower()) + if curr <= l1 or curr <= l2 or curr <= l3: + ans.append(i) + return ans + + +if __name__ == "__main__": + obj = Solution() + print(obj.findWords(words=["Hello", "Alaska", "Dad", "Peace"])) + print(obj.findWords(words=["omk"])) + print(obj.findWords(words=["adsdf", "sfd"])) -- cgit v1.2.3