iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++ 电话号码的字母组合功能实现
  • 225
分享到

C++ 电话号码的字母组合功能实现

C++ 电话号码的字母组合C++号码字母组合 2022-11-13 14:11:37 225人浏览 薄情痞子
摘要

目录电话号码的字母组合描述示例1示例2示例3思路/解法方式一方式二电话号码的字母组合 描述 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返

电话号码的字母组合

描述

给定一个仅包含数字 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'] 的一个数字。

思路/解法

方式一

回溯算法,在当前题目非常适合。先使用map容器记录所有可能,在回溯遍历即可。

class Solution {
public:
    void TrackBack(string& digits,int charStart,int size,string& back,vector<string>& res,std::unordered_map<char,string>& maps)
    {
        if(back.length() == size)
        {
            res.push_back(back);
            return;
        }
        int length = maps[digits[charStart]].length();
        std::string str = maps[digits[charStart]];
        for(int i = 0;i < length; i++)
        {
            back.push_back(str[i]);
            TrackBack(digits,charStart + 1,size,back,res,maps);
            back.pop_back();
        }
    }

    vector<string> letterCombinations(string digits) {
        vector<string> arrs;
        if(digits == "")
            return arrs;
        std::unordered_map<char,string> maps{{'2',"abc"},{'3',"def"},{'4',"ghi"},
        {'5',"jkl"},{'6',"mno"},{'7',"pqrs"},{'8',"tuv"},{'9',"wxyz"}};
        string back;
        TrackBack(digits,0,digits.length(),back,arrs,maps);
        return arrs;
    }
};

方式二

递归法,使用递归求解出所有的可能性并合并结果即可。

class Solution {
public:
    vector<string> CharCombine(string digits,unordered_map<char,string>& maps)
    {
        vector<string> tmp;
        int length = digits.size();
        //边界条件(当长度为0或1时直接跳出)
        if(1 == length)
        {
            string str = maps[digits[0]];
            for(int j = 0;j < str.length();j++)
            {
                string s = "";
                tmp.push_back(s.append(1,str[j]));
            }
            return tmp;
        }
        else if(0 == length)
            return tmp;
        else//递归
        {
            string str = maps[digits[length-1]];
            vector<string> res = CharCombine(digits.substr(0,length-1),maps);
            for(int i = 0;i < str.length();i++)
            {
                for(int j = 0;j < res.size();j++)
                {
                    string t = res[j];
                    tmp.push_back(t.append(1,str[i]));
                }
            }
            return tmp;
        }
    }

    vector<string> letterCombinations(string digits) {
        std::unordered_map<char,string> maps{{'2',"abc"},{'3',"def"},{'4',"ghi"},
        {'5',"jkl"},{'6',"mno"},{'7',"pqrs"},{'8',"tuv"},{'9',"wxyz"}};
        return CharCombine(digits,maps);
    }
};

到此这篇关于c++ 电话号码的字母组合的文章就介绍到这了,更多相关C++ 电话号码的字母组合内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C++ 电话号码的字母组合功能实现

本文链接: https://www.lsjlt.com/news/172034.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++ 电话号码的字母组合功能实现
    目录电话号码的字母组合描述示例1示例2示例3思路/解法方式一方式二电话号码的字母组合 描述 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返...
    99+
    2022-11-13
    C++ 电话号码的字母组合 C++号码字母组合
  • C++实现LeetCode(17.电话号码的字母组合)
    [LeetCode] 17. Letter Combinations of a Phone Number 电话号码的字母组合 Given a string containing di...
    99+
    2024-04-02
  • Java电话号码的字母组合问题怎么解决
    这篇文章主要介绍了Java电话号码的字母组合问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java电话号码的字母组合问题怎么解决文章都会有所收获,下面我们一起来看看吧。电话号码的字母组合中等给定一个...
    99+
    2023-07-05
  • Java 电话号码的组合示例详解
    目录电话号码的字母组合中等题解电话号码的字母组合 中等 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电...
    99+
    2023-03-13
    Java 电话号码组合 Java 电话号码
  • PHP怎么实现随机数字、字母的验证码功能
    本篇内容主要讲解“PHP怎么实现随机数字、字母的验证码功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP怎么实现随机数字、字母的验证码功能”吧!废话不多说,直接上代码:1、classgd....
    99+
    2023-06-04
  • sqlserver实现获取汉字助记码功能汉字拼音字母
    --01--首先创建一个函数,其功能就是功能是得到汉字拼音首字母 go if exists (select * from sysobjects where name='fun_g...
    99+
    2024-04-02
  • 实例详解uniapp如何实现电话录音功能(附代码)
    本篇文章给大家带来了关于uniapp的相关知识,其中主要介绍了怎么用uniapp实现拨打电话并且还能同步录音的功能,感兴趣的朋友一起来看一下吧,希望对大家有帮助。uniapp 实现打电话录音功能最近需要实现一个通过 uniapp 调用手机拨...
    99+
    2023-05-14
    uni-app
  • 详解uniapp实现打电话录音功能(附核心代码)
    本篇文章给大家带来了关于uniapp的相关知识,其中主要跟大家介绍uniapp怎么实现打电话录音功能,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。最近需要实现一个通过uniapp调用手机拨打电话的功能,拨打之后同时录音,挂断电话之后将...
    99+
    2023-05-14
    uniapp
  • Android如何实现带字母索引的侧边栏功能
    这篇文章主要介绍了Android如何实现带字母索引的侧边栏功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。之前已经用自定义View做出如下这样一个效果了这两天需要重新拿来使...
    99+
    2023-05-30
    android
  • Vue两个字段联合校验修改密码功能的实现
    本篇内容主要讲解“Vue两个字段联合校验修改密码功能的实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue两个字段联合校验修改密码功能的实现”吧!目录前言方案实现1、实现代码2、代码说明3、...
    99+
    2023-06-20
  • 如何实现C#控件数组的功能
    这篇文章主要讲解了“如何实现C#控件数组的功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何实现C#控件数组的功能”吧!Dot.Net里取消了C#控件数组,这让习惯了使用VB控件的程序员...
    99+
    2023-06-18
  • Vue 两个字段联合校验之修改密码功能的实现
    目录1、前言2、方案实现2.1、实现代码2.2、代码说明2.3、校验效果1、前言   本文是前文《Vue Element-ui表单校验规则,你掌握了哪些?》针...
    99+
    2024-04-02
  • C++实现Go的defer功能(示例代码)
    在Go语言中有一个关键字:defer,它的作用就是延迟执行后面的函数,在资源释放方面特别有用,比如下面一段C/C++的示例代码: void test() { FILE* fp ...
    99+
    2024-04-02
  • 在Android应用怎实现一个获取联系人电话的功能
    本篇文章给大家分享的是有关在Android应用怎实现一个获取联系人电话的功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。选择联系人............//构造一个隐式的I...
    99+
    2023-05-31
    android roi
  • C#中实现SQL连接字符串的功能
    本篇内容介绍了“C#中实现SQL连接字符串的功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!现在给一个能连接的C#中SQL连接字符串:us...
    99+
    2023-06-17
  • JS如何实现验证密码不能为空、必须含有数字、字母、特殊字符、长度在8-12位的功能
    小编给大家分享一下JS如何实现验证密码不能为空、必须含有数字、字母、特殊字符、长度在8-12位的功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们...
    99+
    2024-04-02
  • springboot整合gateway实现网关功能的示例代码
    目录1.使用场景:2.代码实现1创建gateway-service服务2创建gateway-client服务3.实现效果1.使用场景: 网关可提供请求路由与组合、协议转换、安全认证、...
    99+
    2024-04-02
  • springboot整合@Retryable实现重试功能的示例代码
    目录前言@Retryable 简介使用步骤1.引入依赖2.启用@Retryable3.添加@Retryable注解4.测试注意事项最后结语前言 在实际工作中,重试机制是一个很常见的场...
    99+
    2024-04-02
  • Django组合条件的搜索功能实现是怎么样的
    这期内容当中小编将会给大家带来有关Django组合条件的搜索功能实现是怎么样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一直想着如何做组合条件的搜索!如:前端有三个输入框....输入后过滤,后台写一条...
    99+
    2023-06-04
  • C#实现MP3播放器功能的示例代码
    目录实践过程效果代码实践过程 效果 代码 public partial class Form1 : Form { public Form1() ...
    99+
    2022-12-09
    C# MP3播放器 C# 播放器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作