力扣-1844.将所有数字用字符替换

思路:

1. `class Solution:`:定义了一个名为 `Solution` 的类,用于包装解决问题的方法。

2. `def replaceDigits(self, s: str) -> str:`:定义了一个名为 `replaceDigits` 的方法,该方法接受一个字符串 `s` 作为参数,并返回一个字符串。`self` 是一个特殊的参数,表示类的实例本身。

3. `n = len(s)`:获取字符串 `s` 的长度,并将其赋值给变量 `n`。

4. `arr = list(s)`:将字符串 `s` 转换为字符列表,并将其赋值给变量 `arr`。这样做是为了便于对字符串中的字符进行修改。

5. `for i in range(1, n, 2):`:使用 `for` 循环遍历字符串 `s` 中的每个奇数索引位置(从索引1开始,步长为2)。

6. `arr[i] = chr(ord(arr[i - 1]) + int(arr[i]))`:这行代码是关键。它将当前奇数索引位置的字符替换为其前一个字符的 ASCII 码加上当前位置的数字。具体来说,`ord(arr[i - 1])` 返回前一个字符的 ASCII 码,`int(arr[i])` 将当前位置的字符转换为整数,然后二者相加,并用 `chr()` 方法将结果转换为对应的字符。

7. `return "".join(arr)`:将修改后的字符列表 `arr` 转换回字符串,并作为方法的返回值。

综上所述,这段代码的作用是将字符串中的奇数索引位置的字符替换为其前一个字符的 ASCII 码加上当前位置的数字。

题解:

class Solution:def replaceDigits(self, s: str) -> str:n = len(s)  # 获取字符串长度arr = list(s)  # 将字符串转换为字符列表,便于修改for i in range(1, n, 2):  # 遍历字符串的奇数索引位置(从1开始)# 将当前位置的字符替换为其前一个字符的ASCII码加上当前位置的数字(字符移位)arr[i] = chr(ord(arr[i - 1]) + int(arr[i]))return "".join(arr)  # 将字符列表转换为字符串并返回

优化:

由于 Python 中的字符串是不可变的,我们可以使用列表来构建新的字符串,而不是每次替换字符时都创建一个新字符串。

class Solution:def replaceDigits(self, s: str) -> str:chars = list(s)  # 将字符串转换为字符列表for i in range(1, len(chars), 2):  # 遍历奇数索引位置prev_char = chars[i - 1]  # 前一个字符offset = int(chars[i])  # 当前位置的数字new_char = chr(ord(prev_char) + offset)  # 计算新字符chars[i] = new_char  # 替换当前位置的字符return "".join(chars)  # 将字符列表转换回字符串并返回

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/641376.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OSPF的LSA详解

一、什么是LSA?LSA作用? 在OSPF协议中,LSA全称链路状态通告,主要由LSA头部信息(LSA摘要)和链路状态组成。部分LSA只有LSA头部信息,无链路状态信息。使用LSA来传递路由信息和拓扑信息&#xff0c…

解决Mac使用Vscode无法调用外部终端

前言 今天遇到一个很奇怪的问题,之前好好的用Vscode还能调用外部终端,怎么今天不行了?问题出在哪里呢?请听我娓娓道来。 检查配置文件 我查看了一下配置文件,发现配置文件都是调用外部控制台,没毛病啊。 …

linux入门到精通-第十一章-进程间通信(无名管道)

目录 参考概念**进程通信的目的:**Linux 操作系统支持的主要进程间通信的通信机制: 无名管道概述pipe函数建立无名管道父子进程使用无名管道通信 管道读写特点设置非阻塞的方法查看管道缓冲区命令查看管道缓冲区函数 参考 视频教程 概念 进程是一个独立的资源分配…

Jmeter(十二) - 从入门到精通 - JMeter逻辑控制器 - 终篇(详解教程)

宏哥微信粉丝群:https://bbs.csdn.net/topics/618423372 有兴趣的可以扫码加入 1.简介 Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in which Samplers are processed.”。 意思是说,逻辑控制器可以控制采样…

Fully Animated Cats

这个包可以用于任何类型的游戏,作为主要角色,敌人,猎物,或其他任何东西。该软件包提供90个高质量动画、10种不同风格、实时毛发、6个LOD 控制器/动画师不包括在内。此包仅适用于模型和动画(以及纹理和材质)。 这是你可以用这个资产实现的视频(这个移动是在另一个游戏引擎…

【管理咨询宝藏83】某大型集团管控诊断报告

本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 【管理咨询宝藏83】某大型集团管控诊断报告 【格式】PDF版本 【关键词】管控诊断、人力资源、组织架构 【核心观点】 - 集团跨越式发展的组织瓶颈&#xff0c…

星域社区原版APP源码/社区交友App源码/动态圈子群聊php源码

简介 初始版本是由RuleAPP规则之树开发的,而星域社区则是在此基础上进行了二次开发和美化。作者花了近一年的时间来打磨它,现在即将推出Pro版。如果你只想免费使用的话,可以使用原始的RuleAPP版本。但是,如果你想要获得更好的美观…

如何进行制造设备数据汇集,发挥数据的价值?

数字化转型正深刻推动制造企业实现远程监控、提高生产效率、降低生产成本、优化产品质量及明晰精细化方向。并且工业互联网的发展离不开工业数据的应用,而制造设备数据汇集正是应用的基础。但制造设备数据汇集存在以下难点及痛点: 1、安全把控难 关键的…

STM32之串口中断接收丢失数据

五六年没搞STM32了,这个项目一切都挺顺利,万万没想到被串口接收中断恶心到了。遇到的问题很奇怪 HAL_UART_Receive_IT(&huart1, &rx_buffer[rx_index], LCD_UART_LEN); 这个代码中 LCD_UART_LEN1的时候,接收过来的数据,数…

分享五个开发印度客户的方法

很多人不喜欢做印度市场,最近听到朋友说他做的业绩,印度的销售额是其他国家的总和,也有人查到他的行业里,产品近期的出口量印度占据其他国家总和的两倍,可见有些行业,或者说有些产品,印度市场需…

可疑电子邮件、可疑超链接或可疑文件在线检测工具推荐

对于有安全意识的人来说,收到陌生邮件里含有外链接、doc文件,担心自己中招,能不能用在线的办法提前预处理一下呢?答案总比办法多。 关键字:可疑电子邮件、可疑超链接或可疑文件在线检测工具推荐 phish.ly - 检查可疑…

临滴RK3588桌面版系统,命令行修改静态固定IP

修改文件位置: 打开并修改文件:vi Wired\ connection\ 2.nmconnection 修改IP: 修改相关信息后保存重启即可