leetcode-500. 键盘行

题目

500. 键盘行

解法

很简单,首先维护一个字符位置的映射关系,判断每个字符的每一位是否在一行

哈希表

class Solution {
const LINE_CHARS = [
'q' => 1, 'w' => 1, 'e' => 1, 'r' => 1, 't' => 1, 'y' => 1, 'u' => 1, 'i' => 1, 'o' => 1, 'p' => 1,
'a' => 2, 's' => 2, 'd' => 2, 'f' => 2, 'g' => 2, 'h' => 2, 'j' => 2, 'k' => 2, 'l' => 2,
'z' => 3, 'x' => 3, 'c' => 3, 'v' => 3, 'b' => 3, 'n' => 3, 'm' => 3,
];
/**
* @param String[] $words
* @return String[]
*/
function findWords($words) {
$ret = [];
foreach ($words as $word) {
$lastLine = null;
for ($i = 0; $i < strlen($word); $i++) {
$curChar = strtolower($word[$i]);
$curCharLine = self::LINE_CHARS[$curChar];
if (!is_null($lastLine) && $curCharLine != $lastLine) {
continue 2;
}
$lastLine = $curCharLine;
}
$ret[] = $word;
}
return $ret;
}
}

参考

posted @   吴丹阳-V  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示