leetcode-17电话号码的字母组合(回溯)[通俗易懂]

leetcode-17电话号码的字母组合(回溯)[通俗易懂]原题链接给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1:输入:digits = “23”输出:[“ad”,”ae”,”af”,”bd”,”be”,”bf”,”cd”,”ce”,”cf”]示例 2:输入:digits = “”输出:[]示例 3:输入:digits = “2”输出:[“a”,”b”,”c”] 提示:0 <= digits.le

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

原题链接
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
在这里插入图片描述

示例 1:

输入:digits = "23"
输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]
示例 2:

输入:digits = ""
输出:[]
示例 3:

输入:digits = "2"
输出:["a","b","c"]
 

提示:

0 <= digits.length <= 4
digits[i] 是范围 [‘2’, ‘9’] 的一个数字。

题解
回溯.

class Solution { 
   
public:
    string a[30];
    vector<string>res;
    string t = "";
    void dfs(int u,int len,string digits){ 
   
        if(u == len){ 
   
            res.push_back(t);
            return;
        }
        int num = digits[u] - '0';
        for(int i = 0;i < a[num].size();i ++){ 
   
            t.append(1,a[num][i]);
            dfs(u + 1,len,digits);
            t.erase(t.size() - 1,1);
        }
    }
    vector<string> letterCombinations(string digits) { 
   
        if(digits == "")return res;
        for(int i = 0,p = 2,cnt = 0;i < 26;i ++){ 
   
            a[p].append(1,'a' + i);
            cnt ++;
            if(cnt == 3 && p != 7 && p != 9)cnt = 0,p ++;
            else if(cnt == 4 && (p == 7 || p == 9))cnt = 0,p++;
        }
        dfs(0,digits.size(),digits);
        return res;
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168727.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • targetSdkVersion 23以下6.0中调用requestPermissions()的问题

    targetSdkVersion 23以下6.0中调用requestPermissions()的问题

    2021年9月11日
    55
  • 数据结构–循环队列[通俗易懂]

    数据结构–循环队列[通俗易懂]文章目录顺序存储结构循环队列代码实现注意顺序存储结构所谓顺序存储结构就是用一组地址连续的存储单元依次存放从队头到队尾的元素。声明两个指针rear、front分别用来指示队尾元素的下一位置和队头元素的位置。初始化时rear=front=0,插入新的元素时尾指针加1,元素出队列时队头指针加1。不过这样做有个问题,不论是入队还是出队,队头或队尾指针都是加1,这样做有一个问题,就是元素…

    2022年6月2日
    30
  • Ant安装与下载

    Ant安装与下载1.下载网址:http://ant.apache.org/bindownload.cgi2.将下载后的zip解压,存到指定目录下3.配置环境变量;在系统变量→path中添加当存放的路径到(一直到bin)4.验证是否安装成功,通过cmd命令窗口,执行命令:ant-v步骤1和2步骤3步骤4…

    2022年7月24日
    6
  • powershell校验哈希值_哈希校验什么意思

    powershell校验哈希值_哈希校验什么意思  在不安装任何第三方软件的情况下,我们也可在Windows中直接使用Powershell校验文件多种算法的哈希值,其中就包括:SHA1、SHA256、SHA384、SHA512、MACTripleDES、MD5、RIPEMD160算法。  使用起来也非常简单,大家可以参考如下示例:Get-FileHash[-Path文件路径][-Algorithm算法]…

    2025年9月4日
    6
  • 中文常用停用词表(哈工大停用词表、百度停用词表[通俗易懂]

    中文常用停用词表(哈工大停用词表、百度停用词表[通俗易懂]中文常用停用词表(哈工大停用词表、百度停用词表等:https://github.com/goto456/stopwords

    2022年6月16日
    45
  • bwapp之sql注入_sql注入语句入门

    bwapp之sql注入_sql注入语句入门步骤下面简要介绍手工注入(非盲注)的步骤。1.判断是否存在注入,注入是字符型还是整数型2.猜解SQL查询语句中的字段数(orderby)3.确定显示的字段顺序4.获取当前数据库(爆库)5.获取数据库中的表(爆表)6.获取表中的字段名(爆字段)7.下载数据(爆数据)0x01SQLInjection(GET/Search)…

    2022年9月23日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号