给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。
示例1:
输入: ["Hello", "Alaska", "Dad", "Peace"]
输出: ["Alaska", "Dad"]
注意:
- 你可以重复使用键盘上同一字符。
- 你可以假设输入的字符串将只包含字母。
思路:
对于每个单词,设置三个变量,inline1, inline2, inline3,分别表示单词中的字母是否出现在第一行、第二行、第三行中,若最后这三个变量相加等于 1 ,说明只在一行出现过,则添加到输出数组中。
注意:
true + true + false = 2
true + false + false = 1
/**
* @param {string[]} words
* @return {string[]}
*/
var findWords = function(words) {
var line1 = ['q','w','e','r','t','y','u','i','o','p'],
line2 = ['a','s','d','f','g','h','j','k','l'],
line3 = ['z','x','c','v','b','n','m'];
var result = [];
for (var word of words) {
var inline1 = inline2 = inline3 = false;
var LCword = word.toLowerCase();
for (var char of LCword) {
inline1 = inline1 || line1.includes(char);
inline2 = inline2 || line2.includes(char);
inline3 = inline3 || line3.includes(char);
}
if (inline1 + inline2 + inline3 === 1) {
result.push(word);
}
}
return result;
};