zoukankan      html  css  js  c++  java
  • [LeetCode] 17. Letter Combinations of a Phone Number(手机的 T9 输入法)

    Description

    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.
    给定一个包含数字 2 到 9 的字符串,返回使用手机九键输入这些数字后能够给出的所有组合。可以以任意顺序返回答案。

    A mapping of digit to letters (just like on the telephone buttons) is given below. Note that 1 does not map to any letters.
    数字到字符的映射(就像手机键盘上的那样)如下所示。注意 1 没有映射到任何字母。

    Examples

    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 <= 4
    • digits[i] is a digit in the range ['2', '9'].

    Solution

    这次的回溯法应该属于组合型的类型,代码如下:

    class Solution {
        private val digitToLetter = mapOf(
            '2' to "abc",
            '3' to "def",
            '4' to "ghi",
            '5' to "jkl",
            '6' to "mno",
            '7' to "pqrs",
            '8' to "tuv",
            '9' to "wxyz"
        )
        
        fun letterCombinations(digits: String): List<String> {
            if (digits.isBlank()) {
                return emptyList()
            }
            val result = arrayListOf<String>()
            backtrack(digits, 0, "", result)
            return result
        }
        
        private fun backtrack(digits: String, curIndex: Int, curWord: String, result: MutableList<String>) {
            if (curWord.length == digits.length) {
                result.add(curWord)
                return
            }
            for (letter in digitToLetter[digits[curIndex]]?:"") {
                backtrack(digits, curIndex + 1, curWord + letter, result)
            }
        }
    }
    
  • 相关阅读:
    JS—ajax及async和defer的区别
    js-cookie和session
    h5小功能_classList和自定义属性data
    html5-attr和prop
    人工智能与金融
    IBM的人工智能“沃森”首次确诊罕见白血病,只用了10分钟!
    终极复制 人工智能将如何推动社会巨变
    对人工智能问题的提问
    人工智能预测精神病
    人工智能代替工人
  • 原文地址:https://www.cnblogs.com/zhongju/p/13997869.html
Copyright © 2011-2022 走看看