[LeetCode javaScript] 500. 键盘行

博客围绕使用JavaScript解决LeetCode问题展开,给定一个单词列表,需返回能用键盘同一行字母打印出的单词。如输入['Hello', 'Alaska', 'Dad', 'Peace'],输出['Alaska', 'Dad'],还给出了相关注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。

这里写图片描述

示例1:

输入: [“Hello”, “Alaska”, “Dad”, “Peace”]
输出: [“Alaska”, “Dad”]
注意:

你可以重复使用键盘上同一字符。
你可以假设输入的字符串将只包含字母。

var findWords = function(words) {
    var lines=["qwertyuiop","asdfghjkl","zxcvbnm"];
    //检测一个单词是不是符合条件
   checkOne=function(dd){
       var p=0;
       //根据该单词第一个字符判断该单词属于哪一行的按键
       for(var i=0;i<lines.length;i++){
            if(lines[i].indexOf(dd[0])!=-1){
                p=i;
            }
       }
       //判断后面的字符是否都属于该行
       for(var i=0;i<dd.length;i++){
           if(lines[p].indexOf(dd[i])==-1){
               return false;
           }
       }
       return true;
   }
    var result=[];
    for(var i=0;i<words.length;i++){
    //将字符统一调整为小写,便于处理
        var mm=words[i].toLowerCase();
        //判断成功时,将原单词压入数组
        if(checkOne(mm)){result.push(words[i]);}
    }
    return result;
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值