给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。
示例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;
};