【废物研究生刷算法】字符串
文章目录
- 1. 反转字符串
- 2. 替换数字
- 3. 反转字符串中的单词
- 4. 右旋字符串
- 总结
- 1、字符串处理函数
- 2、字符串切片
如果使用python处理字符串,有很多py内置的函数可以使用,主要还是记住这些处理方法。
1. 反转字符串

class Solution:def reverseStr(self, s, k):s = list(s) # 将字符串转为列表,因为字符串是不可变的for i in range(0, len(s), k * 2): # 步长为 2k,从 0 开始循环s[i: i + k] = s[i: i + k][::-1] # 反转从 i 到 i+k 的子段return ''.join(s) # 将列表转回字符串
- 为什么将字符串转为列表?
Python 的字符串是不可变类型(immutable),无法直接修改其中的字符。而列表是可变的,可以通过切片赋值来修改。因此,第一步 s = list(s) 将字符串转为字符列表,便于后续操作。 - 为什么用
range(0, len(s), k * 2)?
range(0, len(s), k * 2)表示从 0 开始,以 2k 为步长递增,直到到达或超过字符串长度。- 步长 2k 是因为题目要求每隔 2k 个字符处理一次:
- 前 k 个字符反转,后 k 个字符保持不变,总共处理 2k 个字符。
- 为什么 s[i: i + k] = s[i: i + k][::-1] 能正确反转?
s[i: i + k]是从索引 i 到 i + k 的子列表(不包含 i + k)。
[::-1]是 Python 的切片语法,表示反转整个列表。
赋值操作s[i: i + k] = ...将反转后的结果放回原位置。
关键点:当 i + k 超出字符串长度时,Python 的切片会自动截断到字符串末尾,不会报错。
例如:
如果 s = [‘a’, ‘b’, ‘c’], i = 2, k = 2:
s[2:4] 实际只取到 s[2:] = [‘c’],反转后还是 [‘c’],赋值回去不会越界。
2. 替换数字

s = list(input())
i = 0
while i < len(s):if '0' <= s[i] <= '9': # 判断是否为数字s[i:i+1] = list('number') # 替换为 'number' 的字符列表i += len('number') # 跳过 'number' 的长度else:i += 1
print("".join(s))
- 用 ‘0’ <= s[i] <= ‘9’ 判断字符是否为数字(比 ord 更直观)。
- s[i:i+1] = list(‘number’) 将单个字符替换为 “number” 的字符列表。
- 每次替换后,i 跳过 “number” 的长度(6),避免重复检查。
s = input()
result = ''
for char in s:if char.isdigit(): # 判断是否为数字result += 'number'else:result += char
print(result)
- char.isdigit() 是 Python 内置方法,直接判断字符是否为数字。
- 逐字符构建结果字符串,数字替换为 “number”,非数字保持不变。
3. 反转字符串中的单词

class Solution(object):def reverseWords(self, s):""":type s: str:rtype: str"""s = s.strip()strs = s.split()strs.reverse()return " ".join(strs)
4. 右旋字符串

n = int(input())
s = input()print(s[-n:]+s[:-n])
总结
1、字符串处理函数
str.find(str1)
str.count(str1)
str.replace(str1,count)
str.split('分界符')
str.capitalize()
str.strip()
str.join()
str.isdigit()
str.isalpha()
str.reverse()
2、字符串切片
切片操作的基本语法是 sequence[start:stop:step],其中:
start:切片开始的位置(包含该位置的元素),默认为 None,如果为负数则从序列末尾开始计数。
stop:切片结束的位置(不包含该位置的元素),默认为 None,如果为负数则从序列末尾开始计数。
step:切片的步长,默认为 1,可以为负数,表示从右向左切片。
倒数有关的切片
# 定义一个列表
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]# 示例 1:获取最后一个元素
last_element = my_list[-1]
print("最后一个元素:", last_element)# 示例 2:获取倒数三个元素
last_three = my_list[-3:]
print("倒数三个元素:", last_three)# 示例 3:获取从倒数第五个元素到倒数第二个元素
sub_list = my_list[-5:-1]
print("从倒数第五个元素到倒数第二个元素:", sub_list)# 示例 4:使用负步长反转列表
reversed_list = my_list[::-1]
print("反转后的列表:", reversed_list)# 示例 5:每隔一个元素取一个,从倒数第二个元素开始到第一个元素
new_list = my_list[-2::-2]
print("每隔一个元素取一个,从倒数第二个元素开始到第一个元素:", new_list)
相关文章:
【废物研究生刷算法】字符串
文章目录 1. 反转字符串2. 替换数字3. 反转字符串中的单词4. 右旋字符串总结1、字符串处理函数2、字符串切片 如果使用python处理字符串,有很多py内置的函数可以使用,主要还是记住这些处理方法。 1. 反转字符串 class Solution:def reverseStr(self, s, …...
断开ssh连接程序继续运行
在使用 SSH 远程连接服务器时,我们常希望在断开连接后仍然让程序继续运行,以下是几种常见的方法: 1. 使用 screen 或 tmux screen 和 tmux 是两款非常强大的终端复用工具,它们允许你在后台运行会话,即使断开 SSH 连接…...
Kafka客户端连接服务端异常 Can‘t resolve address: VM-12-16-centos:9092
前置条件: 已在CentOs上搭建好kafka节点服务器,已启动kafka服务已在Springboot项目中引入kafka客户端配置,kafka.bootstrap-serverip:port,并启动客户端服务 异常过程: 在客户端Springboot服务启动过程,控…...
视频mp4垂直拼接 水平拼接
视频mp4垂直拼接 水平拼接 pinjie_v.py import imageio import numpy as np import os import cv2def pinjie_v(dir1,dir2,out_dir):os.makedirs(out_dir, exist_okTrue)# 获取目录下的所有视频文件video_files_1 [f for f in os.listdir(dir1) if f.endswith(.mp4)]video_fi…...
idea-代码补全快捷键
文章目录 前言idea-代码补全快捷键1. 基本补全2. 类型匹配补全3. 后缀补全4. 代码补全 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。 而且听说点赞的人每天的运气都不会太差,…...
Transformer为什么需要多头注意力(Multi-Head Attention)?如果没有多头会怎么样?
直接回答 关键点: Transformer 中的多头注意力(Multi-Head Attention)允许模型同时关注输入数据的不同方面,提升性能。 如果没有多头,模型可能无法捕捉复杂关系,表现会下降。 什么是多头注意力ÿ…...
我们来学人工智能 -- DeepSeek客户端
DeepSeek客户端 题记使用后记系列文章 题记 我选择了 Cherry Studio是国内产品由CherryHQ团队开源是一个平台在这里,有豆包、kimi、通义千问的入口当然,最主要是作为大模型的UI正如标题,这里,作为DeepSeep的客户端 使用 下载本…...
LeetCode 热题 100_在排序数组中查找元素的第一个和最后一个位置(65_34_中等_C++)(二分查找)(一次二分查找+挨个搜索;两次二分查找)
LeetCode 热题 100_在排序数组中查找元素的第一个和最后一个位置(65_34) 题目描述:输入输出样例:题解:解题思路:思路一(一次二分查找挨个搜索):思路二(两次二…...
洛谷 P1102 A-B 数对(详解)c++
题目链接:P1102 A-B 数对 - 洛谷 1.题目分析 2.算法原理 解法一:暴力 - 两层for循环 因为这道题需要你在数组中找出来两个数,让这两个数的差等于定值C就可以了,一层for循环枚举A第二层for循环枚举B,求一下看是否等于…...
计算机视觉:主流数据集整理
第一章:计算机视觉中图像的基础认知 第二章:计算机视觉:卷积神经网络(CNN)基本概念(一) 第三章:计算机视觉:卷积神经网络(CNN)基本概念(二) 第四章:搭建一个经典的LeNet5神经网络(附代码) 第五章࿱…...
2025软件测试面试常问的题(详细解析)
🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 测试技术面试题 1、什么是兼容性测试?兼容性测试侧重哪些方面? 参考答案: 兼容测试主要是检查软件在不同的硬件平台、软件平…...
项目POC的作用是什么
在项目管理和开发中,POC(Proof of Concept,概念验证)作为一个关键的步骤,扮演着非常重要的角色。POC的作用主要是验证某个概念、技术或方案的可行性,通过小规模实验或原型验证项目的关键假设,帮…...
初探动态规划--记忆化搜索
记忆化搜索 暴力dfs 记录答案 记忆化搜索是一种优化技术,结合了暴力深度优先搜索 (dfs) 和记录答案的方式。 在动态规划的学习过程中,我们可以将问题划分为以下阶段:dfs暴力搜索,记忆化搜索,以及最终的递推。 动态规…...
java开发——为什么要使用动态代理?
举个例子:假如有一个杀手专杀男的,不杀女的。代码如下: public interface Killer {void kill(String name, String sex);void watch(String name); }public class ManKiller implements Killer {Overridepublic void kill(String name, Stri…...
集合 数据结构 泛型
文章目录 1.Collection集合1.1数组和集合的区别【理解】1.2集合类体系结构【理解】1.3Collection 集合概述和使用【应用】内部类匿名内部类Lambda表达式 1.4Collection集合的遍历【应用】1.5增强for循环【应用】 2.List集合2.1List集合的概述和特点【记忆】2.2List集合的特有方…...
特征提取:如何从不同模态中获取有效信息?
在多模态学习中,特征提取是一个至关重要的过程。它是将原始数据(如文本、图像、视频和语音等)转化为机器能够理解和处理的特征的核心步骤。不同于传统的单一模态任务,在多模态学习中,如何有效地从每种模态中提取出有意…...
vue-treeselect显示unknown的问题及解决
问题 解决办法 去node-modules包里面找到这个组件的源码,在它dist文件里面找到这个文件,然后搜索unknown,把它删掉就可以解决了。...
代码随想录-训练营-day35
309. 买卖股票的最佳时机含冷冻期 - 力扣(LeetCode) 这个题比起我们的买卖股票二来说多了一个冷冻期的说法,也就是我们卖出股票的第二天无法买入股票。 这样对我们而言,dp数组的含义,或者说dp数组中的状态显然就不能是…...
AI汽车新风向:「死磕」AI底盘,引爆线控底盘新增长拐点
2025开年,DeepSeek火爆出圈,包括吉利、东风汽车、上汽、广汽、长城、长安、比亚迪等车企相继官宣接入,掀起了“AI定义汽车”浪潮。 而这股最火的AI汽车热潮,除了深度赋能智能座舱、智能驾驶等AI竞争更白热化的细分场景࿰…...
【Blender】二、建模篇--06,曲线建模/父子级和蒙皮修改器
00:00:03,620 --> 00:00:09,500 前几节可能我们已经做了很多种类型的模型了 但是有一种类型 我们一直避开就是这种管道 1 00:00:10,050 --> 00:00:19,370 藤条头发啊 衣服架子啊这种弯弯绕绕的 需要一定柔软度的模型 那么这节课呢我们都来集中看一下曲线的模型 我们应该…...
【服务器与本地互传文件】远端服务器的Linux系统 和 本地Windows系统 互传文件
rz 命令:本地上传到远端 rz 命令:用于从本地主机上传文件到远程服务器 rz 是一个用于在 Linux 系统中通过 串口 或 SSH 上传文件的命令,它实际上是 lrzsz 工具包中的一个命令。rz 命令可以调用一个图形化的上传窗口,方便用户从本…...
被裁20240927 --- WSL-Ubuntu20.04安装cuda、cuDNN、tensorRT
cuda、cuDNN、tensorRT的使用场景 1. CUDA(Compute Unified Device Architecture) 作用: GPU 通用计算:CUDA 是 NVIDIA 的并行计算平台和编程模型,允许开发者直接利用 GPU 的并行计算能力,加速通用计算任…...
【架构】微内核架构(Microkernel Architecture)
微内核架构(Microkernel Architecture) 核心思想 微内核架构(又称插件式架构)通过最小化核心系统,将可扩展功能以插件模块形式动态加载,实现高内聚低耦合。其核心设计原则: 核心最小化:仅封装基础通用能力(如插件管理、通信机制、安全校验)功能插件化:所有业务功能…...
公务员行测之类比推理-新手小白
类比推理 前言学习类比推理1 语义关系1.1 近义1.2 反义1.3 象征、比喻 2 逻辑关系2.1 全同2.2 并列(1)矛盾并列(2)反对并列2.3 包容(1)种属(2)组成部分2.4 交叉2.5 对应关系…...
详解Nginx 配置
一、Nginx 介绍 Nginx 是一款轻量级的 Web 服务器 / 反向代理服务器及电子邮件(IMAP/POP3)代理服务器。它由俄罗斯的程序设计师 Igor Sysoev 所开发,自 2004 年发布以来,凭借其高性能、低内存消耗、高并发处理能力等特点…...
动静态链接与加载
目录 静态链接 ELF加载与进程地址空间(静态链接) 动态链接与动态库加载 GOT表 静态链接 对于多个.o文件在没有链接之前互相是不知到对方存在的,也就是说这个.o文件中调用函数的的跳转地址都会被设定为0(当然这个函数是在其他.…...
83_CentOS7通过yum无法安装软件问题解决方案
大家好,我是袁庭新。很多小伙伴在CentOS 7中使用yum命令安装软件时,出现无法安装成功的问题,今天给大家分享一套解决方案~ 在CentOS 7中,yum是一个常用的包管理工具,它基于RPM包管理系统。如果你发现yum无法使用,可能是由于多种原因造成的。以下是一些解决步骤,可以帮…...
在PyTorch中使用插值法来优化卷积神经网络(CNN)所需硬件资源
插值法其实就是在已知数据点之间估计未知点的值。通过已知的离散数据点,构造一个连续的曲线函数,预测数据点之间的空缺值是什么并且自动填补上去。 适用场景: 在卷积神经网络(CNN)中的应用场景中,经常遇到计算资源有限,比如显存不够或者处理速度慢,需要用插值来降低计…...
数据包在客户端和服务端,以及网络设备间如何传输的?
声明:文章中图片来自于网络收集,整体流程自己梳理。 目录 问题:如下socket客户端请求数据包如何传输的? 拓扑环境 数据包在分层间传输 网络分层L2/L3/L4 数据包收发-在各分层间变化 各层头部中-核心信息 数据包在不同设备…...
用Python实现Excel数据同步到飞书文档
目录 一、整体目标 二、代码结构拆解 三、核心逻辑讲解(重点) 1. 建立安全连接(获取access_token) 2. 定位文档位置 3. 数据包装与投递 四、异常处理机制 五、函数讲解 get_access_token() 关键概念解释 1. 飞书API访问…...
