[LeetCode] Letter Combinations of a Phone Number
Hãy cùng trở về thời điện thoại bàn phím số với bài toán hôm nay.
Cùng nhau giải quyết bài toán thú vị này và nâng cao code Python.
Tiêu đề: Letter Combinations of a Phone Number Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent. Return the answer in any order.
A mapping of digits to letters (just like on the telephone buttons) is given below. Note that 1 does not map to any letters.
Đây là mã code đầy đủ của tôi:
from typing import List # Nhập List từ thư viện typing
import itertools # Nhập itertools để sử dụng hàm product
class Solution:
def letterCombinations(self, digits: str) -> List[str]:
# Kiểm tra nếu chuỗi digits rỗng
if digits == "":
return [] # Nếu rỗng, trả về danh sách rỗng
# Tạo từ điển ánh xạ các chữ số từ 2 đến 9 với các chữ cái tương ứng
dict_digits = {
"2": "abc",
"3": "def",
"4": "ghi",
"5": "jkl",
"6": "mno",
"7": "pqrs",
"8": "tuv",
"9": "wxyz"
}
list_digit = [] # Khởi tạo danh sách để lưu các chuỗi chữ cái tương ứng
for i in digits: # Duyệt qua từng ký tự trong chuỗi digits
list_digit.append(dict_digits.get(i)) # Lấy chuỗi chữ cái tương ứng và thêm vào list_digit
# Sử dụng itertools.product để tạo ra tất cả các tổ hợp chữ cái
# Kết hợp các ký tự trong mỗi tuple thành một chuỗi và trả về danh sách kết quả
return [''.join(pair) for pair in itertools.product(*list_digit)]
Giải thích qua đoạn mã của tôi nhé:
Kết quả tôi nhận được khá tốt:
Cảm ơn đã quan tâm đến bài viết của tôi. Chúc bạn một ngày vui vẻ.
All rights reserved