LeetCode 17. Letter Combinations of a Phone Number
1695 ワード
https://leetcode.com/problems/letter-combinations-of-a-phone-number/
質問する
質問する
数値からなる文字列を入力します.電話番号に該当する数字を入力できる場合は、数字を出力します.
Input: digits = "23"
Output: ["ad","ae","af","bd","be","bf","cd","ce","cf"]
方法
まず、入力可能な数値文字を含むオブジェクトを作成します.
再帰関数で生成できる文字を含めて出力します.
コード#コード# var letterCombinations = function (digits) {
const phone = {
2: ["a", "b", "c"],
3: ["d", "e", "f"],
4: ["g", "h", "i"],
5: ["j", "k", "l"],
6: ["m", "n", "o"],
7: ["p", "q", "r","s"],
8: ["t", "u", "v"],
9: ["w", "x", "y", "z"],
};
const res = [];
if (!digits.length) {
return res;
}
const find = (num, letter) => {
if (!num.length) { //문자열을 끝가지 봤다면 저장하고 종료해준다.
res.push(letter);
return;
}
let nowNum = num[0]; //현재 문자열의 제일 앞 자리를 가져온다
let leftNum = num.substr(1, num.length); //나머지 문자열을 저장해 다음 재귀함수에 전달해준다.
for (let i of phone[nowNum]) {
find(leftNum, letter + i);
}
};
find(digits, "");
return res;
};
ポスト
簡単に質問に答えた結果、他のJavaScriptユーザーの99.9%よりも早く、不思議でした.メモリは他の人よりずっと使われていて、他の人の解答も見たいです.
Reference
この問題について(LeetCode 17. Letter Combinations of a Phone Number), 我々は、より多くの情報をここで見つけました
https://velog.io/@dev_off/LeetCode-17.-Letter-Combinations-of-a-Phone-Number
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Input: digits = "23"
Output: ["ad","ae","af","bd","be","bf","cd","ce","cf"]
まず、入力可能な数値文字を含むオブジェクトを作成します.
再帰関数で生成できる文字を含めて出力します.
コード#コード# var letterCombinations = function (digits) {
const phone = {
2: ["a", "b", "c"],
3: ["d", "e", "f"],
4: ["g", "h", "i"],
5: ["j", "k", "l"],
6: ["m", "n", "o"],
7: ["p", "q", "r","s"],
8: ["t", "u", "v"],
9: ["w", "x", "y", "z"],
};
const res = [];
if (!digits.length) {
return res;
}
const find = (num, letter) => {
if (!num.length) { //문자열을 끝가지 봤다면 저장하고 종료해준다.
res.push(letter);
return;
}
let nowNum = num[0]; //현재 문자열의 제일 앞 자리를 가져온다
let leftNum = num.substr(1, num.length); //나머지 문자열을 저장해 다음 재귀함수에 전달해준다.
for (let i of phone[nowNum]) {
find(leftNum, letter + i);
}
};
find(digits, "");
return res;
};
ポスト
簡単に質問に答えた結果、他のJavaScriptユーザーの99.9%よりも早く、不思議でした.メモリは他の人よりずっと使われていて、他の人の解答も見たいです.
Reference
この問題について(LeetCode 17. Letter Combinations of a Phone Number), 我々は、より多くの情報をここで見つけました
https://velog.io/@dev_off/LeetCode-17.-Letter-Combinations-of-a-Phone-Number
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
var letterCombinations = function (digits) {
const phone = {
2: ["a", "b", "c"],
3: ["d", "e", "f"],
4: ["g", "h", "i"],
5: ["j", "k", "l"],
6: ["m", "n", "o"],
7: ["p", "q", "r","s"],
8: ["t", "u", "v"],
9: ["w", "x", "y", "z"],
};
const res = [];
if (!digits.length) {
return res;
}
const find = (num, letter) => {
if (!num.length) { //문자열을 끝가지 봤다면 저장하고 종료해준다.
res.push(letter);
return;
}
let nowNum = num[0]; //현재 문자열의 제일 앞 자리를 가져온다
let leftNum = num.substr(1, num.length); //나머지 문자열을 저장해 다음 재귀함수에 전달해준다.
for (let i of phone[nowNum]) {
find(leftNum, letter + i);
}
};
find(digits, "");
return res;
};
簡単に質問に答えた結果、他のJavaScriptユーザーの99.9%よりも早く、不思議でした.メモリは他の人よりずっと使われていて、他の人の解答も見たいです.
Reference
この問題について(LeetCode 17. Letter Combinations of a Phone Number), 我々は、より多くの情報をここで見つけました https://velog.io/@dev_off/LeetCode-17.-Letter-Combinations-of-a-Phone-Numberテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol