2017-09-15 11 views
4

私は最近、インタビューから戻って来て、基本的に質問しました。有効な単語のリストと数字の文字のマッピング - 1 - > ABC、2 - DEF - 有効な文字列のリストを返す関数を記述します。私は本当に苦労し、指導を探しています。電話のマッピングから有効な単語を表示する

function validWords(digits, listOfValidWords) { 

} 

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

1456であるものの数または4つの別々の数字であるか、またはこれらの数値の任意の組み合わせは、結果ことができますか? 1,4,5,6,14,15,16など。 – Observer

+0

電話機に入力された数字キー。例えば、キー「1」は、「A」または「B」または「C」を意味することができる。 – ideaboxer

+0

サンプル値で 'dictionary'を埋めて、期待される結果を投稿してください。 – RomanPerekhrest

答えて

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; }

+0

素敵な解決策(機能的アプローチ)をありがとう。 – ideaboxer

関連する問題