문제 : 전화기 2-9 사이 번호에 쓰여진 문자열들의 조합을 반환하라
Follow up :
아이디어 : 각 번호에 해당하는 문자열의 dictionary를 만든 후 문자를 순회하며 반환해야할 리스트에 값을 추가한다.
코드 :
class Solution:
def letterCombinations(self, digits: str) -> List[str]:
ans = []
if not digits:
return ans
d = {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']}
for digit in digits:
n = int(digit)
if not ans:
ans = d[n]
else:
t = []
for a in ans:
for dig in d[n]:
t.append(a + dig)
ans = t
return ans
학습 포인트 : 한번만에 클리어해서 매우 기분이 좋았다. 침착하게 문제를 분석하고 풀면 좋은 결과가 있을 것이다.
출처 : leetcode.com/problems/letter-combinations-of-a-phone-number/
'프로그래밍' 카테고리의 다른 글
leetcode 39. Combination Sum 풀이 (0) | 2021.04.20 |
---|---|
leetcode 15. 3Sum 풀이 (0) | 2021.04.14 |
leetcode 5. Longest Palindromic Substring 풀이 (0) | 2021.04.13 |
leetcode 3. Longest Substring Without Repeating Characters 풀이 (0) | 2021.04.08 |
leetcode 14. Longest Common Prefix 풀이 (0) | 2021.04.07 |