500. 键盘行
- 题号:500
- 来源:LeetCode
- 难度:简单
- 标签:
字符串哈希表 - 语言:TypeScript
- 解法:1 个
- 作者:lmliheng
- 最近更新:2026-09-27
TypeScript · O(n*k) 时间 · O(1) 空间 · 更新于 2026-09-27
三个Set判断单词字符是否同一行
typescript
/**
* @difficulty easy
* @tags 字符串,哈希表
* @time O(n*k)
* @space O(1)
* @note 三个Set判断单词字符是否同一行
* @500. 键盘行
*/
let words = ["Hello", "Alaska", "Dad", "Peace"]
let set_1 = new Set(['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'])
let set_2 = new Set(['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'])
let set_3 = new Set(['z', 'x', 'c', 'v', 'b', 'n', 'm'])
let res: string[] = []
for (let i = 0; i < words.length; i++) {
let word = words[i].toLowerCase()
let setIndex = 1
if (set_1.has(word[0])) {
setIndex = 1
} else if (set_2.has(word[0])) {
setIndex = 2
} else if (set_3.has(word[0])) {
setIndex = 3
}
let set = setIndex === 1 ? set_1 : setIndex === 2 ? set_2 : set_3
let flag = true
for (let j = 1; j < word.length; j++) {
if (!set.has(word[j])) {
flag = false
break
}
}
if (flag) {
res.push(words[i])
}
}
console.log(res)在 GitHub 上查看题目所在目录:lmliheng/algorithm