代码随想录算法训练营第七天 | 344.反转字符串 541. 反转字符串II 卡码网:54.替换数字
学习内容344.反转字符串双指针classSolution:defreverseString(self,s:List[str])-None: Do not return anything, modify s in-place instead. left0rightlen(s)-1whileleftright:s[left],s[right]s[right],s[left]left1right-1returns学习心得直接用双指针从两端交换元素往中间靠。反转字符串II给定一个字符串 s 和一个整数 k从字符串开头算起每计数至 2k 个字符就反转这 2k 字符中的前 k 个字符再重新计数。如果剩余字符少于 k 个则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个则反转前 k 个字符其余字符保持原样。classSolution:defreverseStr(self,s:str,k:int)-str:defreversesubstring(text):left,right0,len(text)-1whileleftright:text[left],text[right]text[right],text[left]left1right-1returntext reslist(s)foriinrange(0,len(s),2*k):res[i:ik]reversesubstring(res[i:ik])return.join(res)学习心得先定义一个反转函数实现很简单用双指针list()将字符串 s 转换为字符列表。之后for循环 i in range(0, len(s), 2 * k): res[i : i k] reverse(res[i : i k])。这里注意一个特性 res[i : i k] 当ik超出字符串长度将会返回最后的几个字符。‘’.join(res) 是 Python 中将字符列表拼接成字符串的常用方法。卡码网54.替换数字给定一个字符串 s它包含小写字母和数字字符请编写一个函数将字符串中的字母字符保持不变而将每个数字字符替换为number。例如对于输入字符串 “a1b2c3”函数应该将其转换为 “anumberbnumbercnumber”。对于输入字符串 “a5b”函数应该将其转换为 “anumberb”输入一个字符串 s,s 仅包含小写字母和数字字符。输出打印一个新的字符串其中每个数字字符都被替换为了number样例输入a1b2c3样例输出anumberbnumbercnumber数据范围1 s.length 10000。sinput()result[]forchins:ifch.isdigit():result.append(number)else:result.append(ch)result.join(result)print(result)双指针classSolution(object):defsubsitute_numbers(self,s): :type s: str :rtype: str countsum(1forcharinsifchar.isdigit())# 统计数字的个数expand_lenlen(s)(count*5)# 计算扩充后字符串的大小 x-number 每有一个数字就要增加五个长度res[]*expand_len new_indexexpand_len-1# 指向扩充后字符串末尾old_indexlen(s)-1# 指向原字符串末尾whileold_index0:# 从后往前 遇到数字替换成“number”ifs[old_index].isdigit():res[new_index-5:new_index1]numbernew_index-6else:res[new_index]s[old_index]new_index-1old_index-1return.join(res)if__name____main__:solutionSolution()whileTrue:try:sinput()resultsolution.subsitute_numbers(s)print(result)exceptEOFError:break学习心得直接循环判断替换或者双指针。双指针首先计算字符串里数字的个数isdigit()之后计算nums len(s) geshu * 5 得到我们需要的空字符串的总长度 res [ ] x numsnew_index nums - 1 old_index len(s) - 1进入while循环为res填字符。判断条件old_index 0如果if s[old_index].isdigit: res[new_index - 5 : new_index 1] “number” new_index - 6 else res[new_index] s[old_index] new_index - 1old_index - 1 最后return “”.join(res)当文件直接运行时name的值是 “main”

相关新闻

C++ STL deque容器深度解析:双端队列原理、性能对比与实战应用

C++ STL deque容器深度解析:双端队列原理、性能对比与实战应用

1. deque容器:双端队列的深度解析与实战 在C的STL(标准模板库)中,容器是我们日常开发中打交道最多的部分之一。提到序列容器,很多人第一时间会想到 vector 和 list 。 vector 像一列高速火车,尾部上下…

2026/10/24 21:07:14 阅读更多 →
Python字典get()方法详解:从基础语法到高级应用与性能优化

Python字典get()方法详解:从基础语法到高级应用与性能优化

1. 项目概述:为什么字典的 get() 值得你花时间研究? 在Python的日常开发里,字典( dict )几乎是无处不在的数据结构。无论是处理JSON API响应、配置参数,还是做数据聚合,字典都是我们的首选。…

2026/10/25 4:25:17 阅读更多 →
GESP C++二级备考:从“优美的数字”掌握数位分解与本地调试实战

GESP C++二级备考:从“优美的数字”掌握数位分解与本地调试实战

1. 项目概述:从一道题看GESP备考与实战编程 最近在辅导一些准备GESP(图形化编程能力等级认证)C二级考试的学生,发现大家普遍存在一个误区:拿到编程题,第一反应是去网上搜“标准答案”或者“可复制代码”。比…

2026/10/24 16:08:22 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/25 11:19:54 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/24 17:47:00 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/24 18:34:36 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/25 10:02:42 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/25 3:12:30 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/24 21:09:59 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/25 10:02:43 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/25 13:21:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/25 7:47:32 阅读更多 →