Typesetting math: 100%

LeetCode 17. Letter Combinations of a Phone Number

问题链接

LeetCode 17. Letter Combinations of a Phone Number

题目解析

将数字串转化为字符串,其中每个数字对应相应的字母(手机按键对应),返回所有可能的字符串。

解题思路

简单暴力,直接循环迭代即可。首先建立对应数组 NtoC,遍历数字串,每取一个数字,将结果 res 中所有字符串一一取出来与之对应字符相加,再放回结果集中。

时间复杂度:O(n2)

参考代码

class Solution {
public:
    vector<string> letterCombinations(string digits) {
        vector<string> res;
        if(digits.empty()) return res;
        
        string NtoC[10] = {"abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
        res.push_back("");
        for(int i = 0; i < digits.length(); i++) {
            string str = NtoC[digits[i] - '2'];
            int len = res.size();
            for(int j = 0; j < len; j++) {
                string head = res.front();
                res.erase(res.begin());
                for(int k = 0; k < str.length(); k++)
                    res.push_back(head + str[k]);
            }
        }
        return res;
    }
};

LeetCode All in One题解汇总(持续更新中...)

本文版权归作者AlvinZH和博客园所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.


posted @   AlvinZH  阅读(204)  评论(0编辑  收藏  举报
编辑推荐:
· ASP.NET Core - 日志记录系统(二)
· .NET 依赖注入中的 Captive Dependency
· .NET Core 对象分配(Alloc)底层原理浅谈
· 聊一聊 C#异步 任务延续的三种底层玩法
· 敏捷开发:如何高效开每日站会
阅读排行:
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(一):从.NET IoT入
· .NET 开发的分流抢票软件,不做广告、不收集隐私
· ASP.NET Core - 日志记录系统(二)
· C#实现 Winform 程序在系统托盘显示图标 & 开机自启动
· 实现windows下简单的自动化窗口管理
点击右上角即可分享
微信分享提示