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

【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实现。 负载均衡 通常所说的负载均衡都是指的服务端负载均衡&#xf…...

MediaRecorder媒体录音机

权限&#xff1a; <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…...

短视频如何批量添加水印

在当今的数字时代&#xff0c;短视频已经成为一种非常流行的内容形式。无论是社交媒体还是视频分享网站&#xff0c;短视频都已经成为了一种非常有吸引力的内容。然而&#xff0c;对于一些拥有大量视频内容的创作者来说&#xff0c;添加水印可能是一项繁琐的任务。本文将介绍如…...

RT-Thread MQTT(学习)

MQTT背景应用 MQTT是机器对机器&#xff08;M2M&#xff09;/物联网&#xff08;IoT&#xff09;连接协议&#xff0c;英文全名为“Message Queuing Telemetry Transport”&#xff0c;“消息队列遥测传输”协议。它是专为受限设备和低带宽、高延迟或不可靠的网络而设计的&…...

Vue_Bug VUE-ELEMENT-ADMIN默认是英文模式

Bug描述&#xff1a; VUE-ADMIN-TEMPLATE-MASTER VUE-ELEMENT-ADMIN-MASTER 两个项目直接从GitHub上拉取下来 默认是英文模式 其他信息&#xff1a; 这两个项目默认支持中文语言包&#xff0c;无需额外引入&#xff0c;只需删除英文语言包依赖 //import enLang from element-…...

Spark中的Driver、Executor、Stage、TaskSet、DAGScheduler等介绍

工作流程&#xff1a; Driver 创建 SparkSession 并将应用程序转化为执行计划&#xff0c;将作业划分为多个 Stage&#xff0c;并创建相应的 TaskSet。Driver 将 TaskSet 发送给 TaskScheduler 进行调度和执行。TaskScheduler 根据资源情况将任务分发给可用的 Executor 进程执…...

docker的资源限制参数设置错误,导致的clickhouse性能瓶颈

使用场景 我们使用docker作为服务的虚拟化工具&#xff0c;服务都部署在docker里我们使用docker-compose管理所有docker服务的配置文件针对某些服务&#xff0c;我们要限制这个docker占用的资源数量&#xff0c;例如&#xff0c;cpu和内存在进行配置时&#xff0c;网上搜了一些…...

Vue路由守卫有哪些,怎么设置,有哪些使用场景?

Vue 路由守卫是在 Vue Router 中提供的一种功能&#xff0c;它允许您在导航到某个路由前、路由变化时或导航离开某个路由时执行代码。Vue 路由守卫提供了以下几种类型&#xff1a; 1.全局前置守卫 router.beforeEach 在进入路由前执行的钩子函数&#xff0c;它会接收三个参数&a…...

云原生网关可观测性综合实践

作者&#xff1a;钰诚 可观测性 可观测性&#xff08;Observability&#xff09;是指系统、应用程序或服务的运行状态、性能和行为能够被有效地监测、理解和调试的能力。 随着系统架构从单体架构到集群架构再到微服务架构的演进&#xff0c;业务越来越庞大&#xff0c;也越来…...

vue-element-admin—登录页面添加自定义背景

一、效果图 初始效果&#xff1a; 更改背景后效果&#xff1a; 二、操作步骤 1、准备图片 2、更改代码 打开下面路径的 index.vue 文件&#xff1a; vue-element-admin-master\src\views\login\index.vue 也就是登录页面。 对 .login-container 样式代码块内代码做如下…...

软设上午题-错题知识点一

软设上午题-错题知识点一 1、ipconfig 显示信息&#xff1b; ipconfig /all 显示详细信息 &#xff0c;可查看DHCP服务是否已启用&#xff1b; ipconfig /renew 更新所有适配器&#xff1b; ipconfig /release 释放所有匹配的连接。 2、耦合性也叫块间联系。指软件系统结构中各…...

微信小程序(小程序入门)

一&#xff0c;介绍 1、什么是小程序 小程序是一种轻量级的应用程序&#xff0c;可以在移动设备上运行&#xff0c;不需要用户下载和安装。它们通常由企业或开发者开发&#xff0c;用于提供特定功能或服务。 微信小程序&#xff08;wei xin xiao cheng xu&#xff09;&#xf…...

虹科分享 | 想买车无忧?AR为您带来全新体验!

新能源汽车的蓬勃发展&#xff0c;推动着汽车行业加速进行数字化变革。据数据显示&#xff0c;全球新能源汽车销售额持续上升&#xff0c;预计到2025年&#xff0c;新能源汽车市场规模将达到约 4200亿美元&#xff0c;年复合增长率超过 30%。这表明消费者对清洁能源出行的需求不…...

easyUI重新渲染

问题 使用Easyui 时&#xff0c;动态后添加的元素样式无法生效。 解决颁发 全页面重新渲染 $.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&#xff1a;图像&#xff0c;title&#xff1a;头部文字&#xff0c;body&#xff1a;主…...

Linux信号 signal()编程

在Linux的进程间通信中可以用signal&#xff08;&#xff09;函数进行信号与信息传递。 1.信号 信号的名字和编号&#xff1a; 每个信号都有一个名字和编号&#xff0c;这些名字都以“SIG”开头&#xff0c;例如“SIGIO ”、“SIGCHLD”等等。 信号定义在signal.h头文件中&am…...

用Python从零复现混沌博弈算法(CGO):一个骰子如何玩转优化问题?

用Python从零复现混沌博弈算法&#xff08;CGO&#xff09;&#xff1a;一个骰子如何玩转优化问题&#xff1f; 混沌博弈算法&#xff08;Chaos Game Optimization, CGO&#xff09;是近年来兴起的一种新型智能优化算法&#xff0c;它将混沌理论与博弈思想巧妙结合&#xff0c;…...

【最新 v2.7.5 版本安装包】OpenClaw 零基础部署秘籍,无需命令零代码一键安装轻松搞定

&#x1f680; OpenClaw 一键安装包&#xff5c;一键部署甩掉复杂环境配置 &#x1f4cc; 适配信息 适配系统&#xff1a;Windows10/11 64 位 当前版本&#xff1a;v2.7.5&#xff08;虾壳云版&#xff09; ✨ 核心优势 全程可视化操作&#xff0c;不用命令行、不用手动配置…...

对比Taotoken与直接购买官方API在账单清晰度上的差异

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比Taotoken与直接购买官方API在账单清晰度上的差异 效果展示类&#xff0c;从个人开发者或小团队的实际使用经历出发&#xff0c…...

Linux只读挂载保护排查方法

Linux只读挂载保护排查方法本文面向具备一定 Linux 基础的技术人员&#xff0c;围绕只读挂载保护展开&#xff0c;重点讨论写入隔离、配置保护和异常诊断。在中级运维和系统管理工作中&#xff0c;这类主题常常与配置变更、资源状态、权限边界、自动化任务和业务影响交织在一起…...

矩阵键盘原理与实战:从扫描算法到Arduino/CircuitPython驱动指南

1. 项目概述&#xff1a;为什么我们需要矩阵键盘&#xff1f; 在嵌入式项目里&#xff0c;给设备加几个按钮是再常见不过的需求。但如果你需要10个、12个甚至16个独立的按键呢&#xff1f;按照传统思路&#xff0c;一个按键对应一个微控制器的数字输入引脚&#xff0c;那你的Ar…...

终极解决方案:3分钟免费恢复微信网页版完整访问权限

终极解决方案&#xff1a;3分钟免费恢复微信网页版完整访问权限 【免费下载链接】wechat-need-web 让微信网页版可用 / Allow the use of WeChat via webpage access 项目地址: https://gitcode.com/gh_mirrors/we/wechat-need-web 还在为微信网页版无法登录而烦恼吗&am…...

不用登录!3 步把 Excel 进度表变成甘特图

很多团队并不是缺项目管理工具&#xff0c;而是缺时间&#xff1a;领导下午要进度图&#xff0c;表格还在同事电脑里&#xff0c;甘特图只能熬夜手画。PJMan 提供了一条「先出图、再决策」的轻路径&#xff1a;免登录 Excel 一键可视化。 为什么值得试&#xff1f; 零注册门槛&…...

机械爪开发速查手册:从通信协议到PID控制的嵌入式实战指南

1. 项目概述&#xff1a;一份为开发者量身定制的“机械爪”速查手册最近在整理一个涉及硬件控制与嵌入式开发的项目时&#xff0c;我发现自己总是在几个关键的控制算法和通信协议上反复查阅资料&#xff0c;效率很低。后来在GitHub上偶然发现了kyrie-louy/openclaw-cheatsheet这…...

窗口尺寸自由掌控:SRWE如何让任意程序窗口随心所欲

窗口尺寸自由掌控&#xff1a;SRWE如何让任意程序窗口随心所欲 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否曾为某个应用程序的固定窗口尺寸感到束手无策&#xff1f;想在高分辨率下截图却受限于游戏设…...

【紧急预警】传统文献管理正被淘汰!农科院最新评估:未集成NotebookLM的课题组结题延迟平均达4.8个月

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;NotebookLM农业科学研究的范式革命 传统农业科研长期依赖人工文献综述、田间数据手工录入与孤立模型验证&#xff0c;知识整合效率低、跨尺度分析能力弱。NotebookLM 以“文档即计算单元”的设计理念切入&…...