列出电话映射中的有效单词

时间:2017-09-15 20:36:13

标签: javascript dictionary

我最近从采访中回来,他们基本上问:给出一个有效单词列表和数字到字母的映射 - 类似于1 - > ABC,2-> DEF - 如何编写一个返回有效字符串列表的函数。我努力奋斗,正在寻找指导。

function validWords(digits, listOfValidWords) {

}

// for example
var dictionary = [//some list of words];
var words = validWords("1456", dictionary)

1 个答案:

答案 0 :(得分:4)

您可以使用组合算法。

var dictionary = { 2: 'abc', 3: 'def', 4: 'ghi', 5: 'jkl', 6: 'mno', 7: 'pqrs', 8: 'tuv', 9: 'wxyz' },
    number = '345',
    result = [...number]
        .map(n => [...dictionary[n]])
        .reduce((a, b) => a.reduce((r, v) => r.concat(b.map(w => v + w)), []));
        
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }