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.

Example 1:
Input: digits = "23" Output: ["ad","ae","af","bd","be","bf","cd","ce","cf"]
Example 2:
Input: digits = "" Output: []
Example 3:
Input: digits = "2" Output: ["a","b","c"]
Constraints:
0 <= digits.length <= 4digits[i]is a digit in the range['2', '9'].
Explanation:
Base Case:
If
digitsis empty, return an empty array.phoneMap:Maps each digit (2-9) to its corresponding letters.
Backtracking (
backtrack):index: Tracks the current position in thedigitsstring.path: Holds the current combination as an array of characters.path.lengthequalsdigits.length, it forms a valid combination and is pushed toresult.Output:
["ad","ae","af","bd","be","bf","cd","ce","cf"]
[]
["a","b","c"]
This solution uses DFS (Depth-First Search) with backtracking and has a time complexity of O(4^n), where n is the length of
digits(since some digits map to up to 4 letters, e.g., ‘7’ and ‘9’).