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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 在windows cgywinportable上,通过运行linux命令,批量改动文件名。

    在windows cgywinportable上,通过运行linux命令,批量改动文件名。

    2022年3月3日
    43
  • windows系统批量修改文件名,替换字符

    windows系统批量修改文件名,替换字符今天遇到一个问题 我有一个文件夹 里面放的全是图片 可是命名很乱 需要统一命名为 0001 jpg 0002 jpg 这样的格式 图片大概有 400 多个 一个

    2025年11月30日
    5
  • 访问页面升级访问_容器化单页面应用中RESTful API的访问

    访问页面升级访问_容器化单页面应用中RESTful API的访问最近在工作中,需要让运行在容器中的单页面应用程序能够访问外部的RESTfulAPI。这个需求看起来并不困难,不过实现起来还是有些曲折的。在此,我就将这部分内容总结一下。在入正题之前,有个一问题,就是为什么要将单页面应用放在容器中运行?这个问题其实跟“为什么要将应用程序容器化”是一个问题。简单来讲,容器化的应用程序可以运行在任何具有容器执行环境的宿主平台上,比如可以在Linux系统中运行…

    2022年6月17日
    35
  • QFile接口详解

    QFile接口详解1、QFile::QFile()构造一个没有名字的QFile对象2、QFile::QFile(constQString&amp;name)构造一个以name为文件名的QFile对象。注:也可以QFile::QFile(),然后调用setName()方法来实现类似动作。3、bootQFile::atEnd()const[虚函数]如果已经到达文件末尾则返回TRUE,否则返回…

    2022年6月9日
    32
  • [学习笔记]上传文件到EC2主机[通俗易懂]

    [学习笔记]上传文件到EC2主机[通俗易懂]之前在别的主机服务器上上传到文件,过程如下:首先有ssh连接,不管是通过输入密码的方式还是添加密钥的方式都一样,确定建立链接没有问题之后,就有下面的操作sshhostname@public_ip//建立链接mkdirupload//创建接受文件的文件夹chmod777uploadscppath_to_filehostname@public_ip:/home/hostnam

    2022年7月20日
    15
  • Thread 设置 IsBackground true false 的 运行差别

    Thread 设置 IsBackground true false 的 运行差别1.这是一个后台线程,IsBackground=true,主线程完成后,后台子线程也停止了,即使子线程还有没运行完,也要停止classProgram{staticvoidMain(string[]args){Threadt=newThread(()=>{…

    2022年10月16日
    2

发表回复

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

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