【LeetCode】17. 电话号码的字母组合
1 问题
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

示例 1:
输入:digits = “23”
输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]
示例 2:
输入:digits = “”
输出:[]
示例 3:
输入:digits = “2”
输出:[“a”,“b”,“c”]
2 答案
自己写的不对
class Solution:def letterCombinations(self, digits: str) -> List[str]:hashmap = {2:'abc', 3:'def', 4:'ghi', 5:'jkl', 6:'mno', 7:'pqrs', 8:'tuv', 9:'wxyz'}if digits = "" return []list1 = []res = []for s in digits:list1.append(hashmap[int(s)])for i in range(len(list1)):for j in range(i+1, len(list1)):ii = len(list1[i])jj = len(list1[j])while ii != -1: res.append(list1[i][ii]+list1[j][jj])ii -= 1
官方解1:回溯
class Solution:def letterCombinations(self, digits: str) -> List[str]:if not digits: return []phone = {'2':['a','b','c'],'3':['d','e','f'],'4':['g','h','i'],'5':['j','k','l'],'6':['m','n','o'],'7':['p','q','r','s'],'8':['t','u','v'],'9':['w','x','y','z']}def backtrack(conbination,nextdigit):if len(nextdigit) == 0:res.append(conbination)else:for letter in phone[nextdigit[0]]:backtrack(conbination + letter,nextdigit[1:])res = []backtrack('',digits)return res
官方解2:队列
class Solution:def letterCombinations(self, digits: str) -> List[str]:if not digits: return []phone = ['abc','def','ghi','jkl','mno','pqrs','tuv','wxyz']queue = [''] for digit in digits:for _ in range(len(queue)):tmp = queue.pop(0)for letter in phone[ord(digit)-50]:queue.append(tmp + letter)return queue
感觉这两种方法都不太好理解,后面还要巩固一下
3 知识点
回溯:
当题目中出现 “所有组合” 等类似字眼时,我们第一感觉就要想到用回溯。
相关文章:
【LeetCode】17. 电话号码的字母组合
1 问题 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入:digits “23” 输出&…...
使用 Apache Kafka 进行发布-订阅通信中的微服务
发布-订阅消息系统在任何企业架构中都发挥着重要作用,因为它可以实现可靠的集成,而无需紧密耦合应用程序。在解耦的系统之间共享数据的能力并不是一个容易解决的问题。 考虑一家拥有多个使用不同语言和平台独立构建的应用程序的企业。它需要响应地共享数…...
valarray 包含对象成员的类(cpp14章)
C代码重用 1.公有继承可以实现 2.包含、私有继承、保护继承用于实现has-a关系,即新的类将包含另一个类的对象。 (使用这样类成员:本身是另外一个类对象称为包含 (组合或层次化)。) 3.函数模板、类模…...
2023双11笔记本电脑候选名单(截止2023.10.13的价格,双十一活动可能会更便宜一点)
以下是我最近几天查阅抖音,B站,知乎,百度,朋友后候选出来的一些6000-8000的游戏本电脑,标绿的属性是相比之下较为优秀的 附上几个网上的CPU和显卡排行网站 CPU性能排行榜 - CPU天梯图 - 最强CPU2023(较为全面的CPU排行,收录四千多款) 笔记本性能排行榜 - 快科技天梯榜 笔记本CP…...
Springcloud笔记(4)-客户端负载均衡Ribbon
Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,不需要独立部署,几乎存在于每一个springcloud构建的微服务和基础设施中。 微服务间调用,API网关的请求转发都通过Ribbon实现。 负载均衡 通常所说的负载均衡都是指的服务端负载均衡…...
MediaRecorder媒体录音机
权限: <uses-permission android:name"android.permission.RECORD_AUDIO"/> <uses-permission android:name"android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name"android.permission.READ_EXTE…...
短视频如何批量添加水印
在当今的数字时代,短视频已经成为一种非常流行的内容形式。无论是社交媒体还是视频分享网站,短视频都已经成为了一种非常有吸引力的内容。然而,对于一些拥有大量视频内容的创作者来说,添加水印可能是一项繁琐的任务。本文将介绍如…...
RT-Thread MQTT(学习)
MQTT背景应用 MQTT是机器对机器(M2M)/物联网(IoT)连接协议,英文全名为“Message Queuing Telemetry Transport”,“消息队列遥测传输”协议。它是专为受限设备和低带宽、高延迟或不可靠的网络而设计的&…...
Vue_Bug VUE-ELEMENT-ADMIN默认是英文模式
Bug描述: VUE-ADMIN-TEMPLATE-MASTER VUE-ELEMENT-ADMIN-MASTER 两个项目直接从GitHub上拉取下来 默认是英文模式 其他信息: 这两个项目默认支持中文语言包,无需额外引入,只需删除英文语言包依赖 //import enLang from element-…...
Spark中的Driver、Executor、Stage、TaskSet、DAGScheduler等介绍
工作流程: Driver 创建 SparkSession 并将应用程序转化为执行计划,将作业划分为多个 Stage,并创建相应的 TaskSet。Driver 将 TaskSet 发送给 TaskScheduler 进行调度和执行。TaskScheduler 根据资源情况将任务分发给可用的 Executor 进程执…...
docker的资源限制参数设置错误,导致的clickhouse性能瓶颈
使用场景 我们使用docker作为服务的虚拟化工具,服务都部署在docker里我们使用docker-compose管理所有docker服务的配置文件针对某些服务,我们要限制这个docker占用的资源数量,例如,cpu和内存在进行配置时,网上搜了一些…...
Vue路由守卫有哪些,怎么设置,有哪些使用场景?
Vue 路由守卫是在 Vue Router 中提供的一种功能,它允许您在导航到某个路由前、路由变化时或导航离开某个路由时执行代码。Vue 路由守卫提供了以下几种类型: 1.全局前置守卫 router.beforeEach 在进入路由前执行的钩子函数,它会接收三个参数&a…...
云原生网关可观测性综合实践
作者:钰诚 可观测性 可观测性(Observability)是指系统、应用程序或服务的运行状态、性能和行为能够被有效地监测、理解和调试的能力。 随着系统架构从单体架构到集群架构再到微服务架构的演进,业务越来越庞大,也越来…...
vue-element-admin—登录页面添加自定义背景
一、效果图 初始效果: 更改背景后效果: 二、操作步骤 1、准备图片 2、更改代码 打开下面路径的 index.vue 文件: vue-element-admin-master\src\views\login\index.vue 也就是登录页面。 对 .login-container 样式代码块内代码做如下…...
软设上午题-错题知识点一
软设上午题-错题知识点一 1、ipconfig 显示信息; ipconfig /all 显示详细信息 ,可查看DHCP服务是否已启用; ipconfig /renew 更新所有适配器; ipconfig /release 释放所有匹配的连接。 2、耦合性也叫块间联系。指软件系统结构中各…...
微信小程序(小程序入门)
一,介绍 1、什么是小程序 小程序是一种轻量级的应用程序,可以在移动设备上运行,不需要用户下载和安装。它们通常由企业或开发者开发,用于提供特定功能或服务。 微信小程序(wei xin xiao cheng xu)…...
虹科分享 | 想买车无忧?AR为您带来全新体验!
新能源汽车的蓬勃发展,推动着汽车行业加速进行数字化变革。据数据显示,全球新能源汽车销售额持续上升,预计到2025年,新能源汽车市场规模将达到约 4200亿美元,年复合增长率超过 30%。这表明消费者对清洁能源出行的需求不…...
easyUI重新渲染
问题 使用Easyui 时,动态后添加的元素样式无法生效。 解决颁发 全页面重新渲染 $.parser.parse();单一元素重新渲染 var obj $("#div1").append("<input classeasyui-textbox typetext>"); $.parser.parse(obj);...
html和css基础练习
vscode快捷键 alt b 在浏览器中打开 alt shift b 在其他浏览器打开 ctrl / 注释 ctrl y 快捷键删除 参考文章 https://www.bilibili.com/video/BV1m84y1w7Tb 基础html标签 img:图像,title:头部文字,body:主…...
Linux信号 signal()编程
在Linux的进程间通信中可以用signal()函数进行信号与信息传递。 1.信号 信号的名字和编号: 每个信号都有一个名字和编号,这些名字都以“SIG”开头,例如“SIGIO ”、“SIGCHLD”等等。 信号定义在signal.h头文件中&am…...
springboot-vue+nodejs的农村综合风貌展示平台
目录技术架构设计功能模块划分开发实施步骤测试与部署关键代码示例项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作技术架构设计 后端框架选择 Spring Boot作为核心框架,提供RESTful API接口。 Node.js作为辅助服务…...
10分钟掌握AI-Render:在Blender中玩转Stable Diffusion的终极指南
10分钟掌握AI-Render:在Blender中玩转Stable Diffusion的终极指南 【免费下载链接】AI-Render Stable Diffusion in Blender 项目地址: https://gitcode.com/gh_mirrors/ai/AI-Render 你是否想过,在Blender这个强大的3D创作软件中,直接…...
OpenClaw错误处理:QwQ-32B生成有误时的自动修正方案
OpenClaw错误处理:QwQ-32B生成有误时的自动修正方案 1. 为什么需要关注大模型生成错误 上周我让OpenClaw自动整理项目文档时,遇到了一个令人哭笑不得的场景。QwQ-32B模型将"API响应时间优化"错误生成为"API响应时间恶化"ÿ…...
OpenClaw+GLM-4.7-Flash:个人健康数据自动追踪与分析
OpenClawGLM-4.7-Flash:个人健康数据自动追踪与分析 1. 为什么需要自动化健康管理 去年体检报告上的几项异常指标让我意识到,碎片化的健康数据记录根本不足以反映真实身体状况。尝试过各种健康类App后,发现它们要么数据封闭,要么…...
从PaddlePaddle 2.2.2平滑升级到2.4.2的实战指南
1. 升级前的准备工作 在开始升级PaddlePaddle之前,我们需要做好充分的准备工作。首先检查当前环境,确保系统满足升级要求。我建议创建一个新的Python虚拟环境来隔离升级过程,这样可以避免影响其他项目。使用conda创建环境的命令如下ÿ…...
告别乱码!用CMD批量转换文本换行符时如何保持GBK/UTF-8编码(附错误排查指南)
告别乱码!用CMD批量转换文本换行符时如何保持GBK/UTF-8编码(附错误排查指南) 当你在Windows环境下处理来自不同操作系统的文本文件时,最令人头疼的问题莫过于换行符差异导致的格式混乱和编码转换引发的乱码。特别是对于数据分析师…...
VTK.js终极指南:7个步骤掌握Web端3D可视化开发
VTK.js终极指南:7个步骤掌握Web端3D可视化开发 【免费下载链接】vtk-js Visualization Toolkit for the Web 项目地址: https://gitcode.com/gh_mirrors/vt/vtk-js 你是否曾想过在浏览器中实现专业的医学影像三维重建?或是让复杂的科学数据在网页…...
如何使用Aimeos构建高效产品目录:从基础商品到复杂配置型产品的完整指南
如何使用Aimeos构建高效产品目录:从基础商品到复杂配置型产品的完整指南 【免费下载链接】aimeos Integrated online shop based on Laravel 10 and the Aimeos e-commerce framework for ultra-fast online shops, scalable marketplaces, complex B2B application…...
LongCat动物百变秀快速入门:上传图片+输入文字=神奇效果
LongCat动物百变秀快速入门:上传图片输入文字神奇效果 1. 认识动物百变秀 你是否想过给家里的宠物猫换个造型?或者把普通的狗狗照片变成威风凛凛的狼?LongCat动物百变秀让这些想象变成现实。这是一个基于美团开源技术的智能图片编辑工具&am…...
flutter_staggered_grid_view性能优化:解决大数据量网格渲染卡顿问题
flutter_staggered_grid_view性能优化:解决大数据量网格渲染卡顿问题 【免费下载链接】flutter_staggered_grid_view A Flutter staggered grid view 项目地址: https://gitcode.com/gh_mirrors/fl/flutter_staggered_grid_view flutter_staggered_grid_view…...
