Open xiqe opened 5 years ago
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
示例:
输入:"23" 输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
var letterCombinations = function(digits) { if(digits=='')return []; let n = ['','','abc','def','ghi','jkl','mno','pqrs','tuv','wxyz']; // 设置规则 let arr = digits.split('').map(x=>n[x]).filter(x=>x!==''); // 将有效数字转换成字母数组 if(arr.length<2)return arr[0].split(''); // 单一数组直接字符串spilt const comb = (a,b) => { // 两两数组(字符串)组合并且返回新的数组 let temp = []; for(let i=0;i<a.length;i++){ for(let j=0;j<b.length;j++){ temp.push(`${a[i]}${b[j]}`) } } return temp } let [i,result] = [2,comb(arr[0],arr[1])]; while (i < arr.length) { // 循环数组两两组合,直接最后一个字符串完成结束 result = comb(result,arr[i]) i++; } return result; };
电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
示例:
reply