本文最后更新于242 天前,其中的信息可能已经过时,如有错误请发送邮件到2446865563@qq.com
1.题目基本信息
1.1.题目描述
给你一个字符串数组 words ,只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。
请注意,字符串 不区分大小写,相同字母的大小写形式都被视为在同一行。
美式键盘 中:
-
第一行由字符 "qwertyuiop" 组成。
-
第二行由字符 "asdfghjkl" 组成。
-
第三行由字符 "zxcvbnm" 组成。
1.2.题目地址
https://leetcode.cn/problems/keyboard-row/description/
2.解题方法
2.1.解题思路
遍历+哈希表
2.2.解题步骤
第一步,获取word[0]在第几个哈希表中
第二步,判断后续字符是否都在该哈希表中
3.解题代码
python代码
class Solution:
def findWords(self, words: List[str]) -> List[str]:
# 思路:哈希表
sets = [set("qwertyuiop"), set("asdfghjkl"), set("zxcvbnm")]
result = []
for word in words:
# 第一步,获取word[0]在第几个哈希表中
index = 0
while word[0].lower() not in sets[index]:
index += 1
# 第二步,判断后续单词是否都在哈希表中
ok = True
for c in word[1:]:
if c.lower() not in sets[index]:
ok = False
break
if ok:
result.append(word)
return result
4.执行结果










