博客
关于我
Leetcode 17. Letter Combinations of a Phone Number
阅读量:796 次
发布时间:2023-01-30

本文共 1439 字,大约阅读时间需要 4 分钟。

字母组合生成的解决方案

这段代码展示了一个用于生成字母组合的C#解决方案,常见于电话按键盘上的字母提示功能。通过将数字映射到对应的字母组合,可以实现类似电话导航系统那样显示连续按键输入后的组合结果。

// 类 Solution 中的代码class Solution {    // 字母组合映射,根据电话键盘布局    string[] mapping = { "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz" };    // 递归获取字符串组合    void get_string(string &digits, int l, ref vector
ans, ref string x) { if (l == digits.size()) { ans.push_back(x); return; } // 遍历当前数字对应的字母组合 for (auto c : mapping[digits[l] - '2']) { x.push_back(c); get_string(digits, l + 1, ans, x); x.pop_back(); } } // 生成字母组合 vector
letterCombinations(string digits) { vector
ans; if (digits.empty()) return ans; string x = ""; get_string(digits, 0, ans, x); return ans; }}

代码解析

该解决方案主要包括两个部分:mapping 数组和 get_string 函数、letterCombinations 函数。

  • mapping 数组:这是一个字符串数组,包含 12 个字母组合,分别对应常见电话键盘的布局:

    • "abc" 对应 2 错
    • "def" 对应 3 错
    • "ghi" 对应 4 错
    • "jkl" 对应 5 错
    • "mno" 对应 6 错
    • "pqrs" 对应 7 错
    • "tuv" 对应 8 错
    • "wxyz" 对应 9 错
  • get_string 函数:这是一个递归函数,主要负责按键输入的字母组合生成。具体逻辑包括:

    • 当当前索引与输入数字长度相同时,将当前组合添加到结果列表中
    • 对于每个数字,遍历其对应的字母组合
    • 递归处理下一个数字,并在返回时恢复上一层(回溯)
  • letterCombinations 函数:作为解析入口,初始化组合结果列表。如果输入数字为空则直接返回空列表。否则,调用 get_string 函数进行处理,最终返回所有可能的字母组合。

  • 样例使用

    例如,输入 223

    • 2 对应 "abc"
    • 23 对应 "ab", "bc", "cc"合成后的结果为 "ab", "bc", "cc"。

    这种解法通过递归的方式生成所有可能组合,虽然效率较高,但在处理大量组合时可能会出现性能问题。

    转载地址:http://bagyk.baihongyu.com/

    你可能感兴趣的文章
    100个电脑常用组合键大全(非常详细)零基础入门到精通,收藏这篇就够了
    查看>>
    10个程序员可以接私活的平台
    查看>>
    10个运维拿来就用的 Shell 脚本,用了才知道有多爽,零基础入门到精通,收藏这一篇就够了
    查看>>
    10条sql语句优化的建议
    查看>>
    10款最佳免费WiFi黑客工具(附传送门)零基础入门到精通,收藏这一篇就够了
    查看>>
    15个备受欢迎的嵌入式GUI库,从零基础到精通,收藏这篇就够了!
    查看>>
    15个程序员常逛的宝藏网站!!从零基础到精通,收藏这篇就够了!
    查看>>
    2023应届毕业生找不到工作很焦虑怎么办?
    查看>>
    2023最新版Node.js下载安装及环境配置教程(非常详细)从零基础入门到精通,看完这一篇就够了
    查看>>
    2024 年需要了解的顶级大数据工具(非常详细)零基础入门到精通,收藏这一篇就够了
    查看>>
    2024 最新 Kali Linux 定制化魔改,完整版,添加常见60渗透工具,零基础入门到精通,收藏这篇就够了
    查看>>
    2024大模型行业应用十大典范案例集(非常详细)零基础入门到精通,收藏这一篇就够了
    查看>>
    2024年全球顶尖杀毒软件,从零基础到精通,收藏这篇就够了!
    查看>>
    2024年度“金智奖”揭晓:绿盟科技获双项大奖,创新驱动网络安全新高度。从零基础到精通,收藏这篇就够了!
    查看>>
    2024年最流行的十大开源渗透测试工具
    查看>>
    2024年网络安全八大前沿趋势,零基础入门到精通,收藏这篇就够了
    查看>>
    2024年薪酬最高的五个网络安全职位,零基础入门到精通,收藏这一篇就够
    查看>>
    2024年非科班的人合适转行做程序员吗?
    查看>>
    2024数字安全创新性案例报告,从零基础到精通,收藏这篇就够了!
    查看>>
    2024最新最全CTF入门指南(非常详细)零基础入门到精通,收藏这一篇就够了
    查看>>