当前位置: 首页 > news >正文

晋江网站制作龙之向导外贸

晋江网站制作,龙之向导外贸,什么好的主题做网站,服装网站的设计理念题目 17. 电话号码的字母组合 中等 相关标签 哈希表 字符串 回溯 给定一个仅包含数字 2-9 的字符串#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下#xff08;与电话按键相同#xff09;。注意 1 不对应任何字母。…题目 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.length 4digits[i] 是范围 [2, 9] 的一个数字。 思路和解题方法 代码首先定义了一个常量数组 letterMap其中每个元素表示数字0-9对应的字符集合。这样我们可以通过数字来索引 letterMap 中的元素得到对应的字符集合。接下来代码定义了两个成员变量 ans 和 s分别用于存储最终的答案集合和临时的组合结果。然后代码定义了一个递归函数 backtracking该函数通过参数 digits 和 index 来表示当前处理的数字串和目前处理到的位置。在 backtracking 函数中当 index 等于 digits 的大小时说明已经找到了一种组合将 s 加入到答案集合 ans 中并返回。否则获取当前位置的数字 digit以及它对应的字符集合 letters。接下来通过循环遍历当前数字对应的每个字符并将其依次加入到临时组合结果字符串 s 中。然后递归调用 backtracking 函数处理下一个数字的字母组合。最后在完成递归调用后进行回溯操作将刚才加入的字符移出继续尝试下一个字符。在主函数 letterCombinations 中首先清空临时字符串 s 和答案集合 ans。然后判断输入的数字串是否为空如果为空直接返回空的答案集合。否则调用 backtracking 函数开始搜索字母组合。最后返回最终的答案集合。 复杂度 时间复杂度: O(3m×4n) 算法的时间复杂度为 O(3m×4n)其中 m 表示输入数字串中对应字母集合大小为 3 的数字个数n 表示输入数字串中对应字母集合大小为 4 的数字个数。因为一般情况下一个数字对应 3 个字母另外两个数字对应 4 个字母所以总的时间复杂度为 O(3m×4n)。 空间复杂度 O(mn) 空间复杂度为 O(mn)即递归栈的深度。在最坏情况下所有数字都对应字母集合大小为 4所以根据上面的时间复杂度分析有 mn 个数字需要进行搜索因此栈的深度也为 mn所以空间复杂度为 O(mn)。 c 代码 class Solution { public:const string letterMap[10]{, // 数字0对应的字母为空字符串因为通常没有字母对应数字0, // 数字1对应的字母为空字符串因为通常没有字母对应数字1abc, // 数字2对应的字母为abcdef, // 数字3对应的字母为defghi, // 数字4对应的字母为ghijkl, // 数字5对应的字母为jklmno, // 数字6对应的字母为mnopqrs, // 数字7对应的字母为pqrstuv, // 数字8对应的字母为tuvwxyz // 数字9对应的字母为wxyz};vectorstring ans; // 存储最终的答案集合string s; // 用于临时存储每个组合结果的字符串void backtracking(string digits,int index){if(index digits.size()) // 如果达到了数字串的末尾说明已经找到了一种组合将其加入到答案集合中{ans.push_back(s);return ;}int digit digits[index] - 0; // 获取当前位置的数字string letters letterMap[digit]; // 获取当前数字对应的字母集合for(int i0;iletters.size();i) // 遍历当前数字对应的每个字母{s.push_back(letters[i]); // 将字母加入到临时组合结果字符串中backtracking(digits,index 1); // 继续递归下一个数字的字母组合s.pop_back(); // 回溯将刚才加入的字母去除尝试下一个字母}}vectorstring letterCombinations(string digits) {s.clear(); // 清空临时字符串sans.clear(); // 清空答案集合ansif(digits.size() 0) // 如果输入的数字串为空则直接返回空的答案集合{return ans;}backtracking(digits,0); // 开始回溯搜索字母组合return ans; // 返回最终的答案集合} };觉得有用的话可以点点赞支持一下。 如果愿意的话关注一下。会对你有更多的帮助。 每天都会不定时更新哦  人  。
http://www.hkea.cn/news/14488753/

相关文章:

  • 一个网站两个域名国内seo排名
  • 网站官网上的新闻列表怎么做直播网站基础建设
  • 行业网站建设的开发方案wordpress做支付宝
  • 学校网站开发綦江在线
  • 佛山外贸建站专业的微网站公司
  • 制定一份网站界面设计方案2023年企业年报入口
  • 苏州h5网站建设腾讯云做wordpress太卡
  • 门户网站开发费需入无形资产阿里云服务器做网站django
  • 网站模块分析中国建筑集团网
  • 建站网站怎么上传代码如何做好网站关键词布局
  • 用asp.net开发网站的优势代理小程序加盟
  • 药膳网站建设的目的wordpress社交游戏
  • 个人网站成品osx wordpress
  • wap网站软件做一个网站要注意什么
  • 越秀网站建设推广上海计算机一级网页制作
  • 网站如何宣传什么叫网落营销
  • 安徽建设厅网站网址华为认证网络工程师怎么考
  • 做网站每天任务及实训过程wordpress 原理
  • 站长工具综合权重查询网上商城网站建设解决方案
  • 网站开发的前端与后端淮南房地产网站建设网站
  • 做旅游地产的网站和公司潍坊中脉网站建设公司
  • 大兴专业网站开发公司湖南省造价管理站官网
  • 做网站怎么去工信部缴费挂机软件定制
  • 用html5做手机网站网站备案如何转移
  • 做网站网站的人是怎么被抓的社交网站开发技术岗
  • 建站一条龙邯郸个人网站建设
  • 婚纱影楼网站模板wordpress内存耗尽
  • 四川餐饮网站建设建筑行业网站有哪些
  • 网站 js 广告代码大全wordpress微软雅黑字体
  • 网站产品预算网页游戏排行榜人气