DEV Community

SalahElhossiny
SalahElhossiny

Posted on

1 1

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.

class Solution(object):
    def letterCombinations(self, digits):

        res = []
        if not digits:
            return res

        d = {
            "2":"abc", 
            "3": "def",
            "4":"ghi", 
            "5": "jkl", 
            "6":"mno", 
            "7": "pqrs", 
            "8":"tuv", 
            "9": "wxyz",    
        }

        def backtrack(i, curStr):
            if len(curStr) == len(digits):
                res.append(curStr)
                return

            for c in d[digits[i]]:
                backtrack(i + 1, curStr + c)


        backtrack(0, "")

        return res



Enter fullscreen mode Exit fullscreen mode

Image of Timescale

Timescale – the developer's data platform for modern apps, built on PostgreSQL

Timescale Cloud is PostgreSQL optimized for speed, scale, and performance. Over 3 million IoT, AI, crypto, and dev tool apps are powered by Timescale. Try it free today! No credit card required.

Try free

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs