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

代码随想录【字符串】

一刷:6月3日到6月9日

反转字符串

 		l=0r=len(s)-1while l<r:s[l],s[r]=s[r],s[l]l+=1r-=1

反转字符串II

        res=list(s)for i in range(0,len(s),2*k):res[i:i+k]=res[i:i+k][::-1]return "".join(res)

替换数字

没有使用额外的空间

s=list(input())
l=len(s)-1
x=['r','e','b','m','u','n']
num=0
for i in s:if i.isdigit():num+=1
for i in range(num*5):s.append(0)
idx_2=len(s)-1
for idx_1 in range(l,-1,-1):if s[idx_1].isdigit():for sx in x:s[idx_2]=sxidx_2-=1else:s[idx_2]=s[idx_1]idx_2-=1print("".join(s))

翻转字符串里的单词

 		s.strip()s=s[::-1]return " ".join([x[::-1] for x in s.split()])

右旋转字符串

这么写超时了。。。

k=int(input())
s=list(input())
for i in range(k):x=s[-1]for i in range(len(s)-1,0,-1):s[i]=s[i-1]s[0]=x
print("".join(s))

这个跟上一题翻转字符串里的单词有异曲同工之妙

k=int(input())
s=list(input())
s=s[::-1]
s[0:k]=s[0:k][::-1]
s[k:]=s[k:][::-1]
print("".join(s))

实现strStr(())

KMP算法的实现

i是后缀末尾
j是前缀末尾

def getnext(self,s,next):j=0next[0]=0for i in range(1,len(s)):while j>0 and s[j]!=s[i]:j=next[j-1]if s[i]==s[j]:j+=1next[i]=jreturn nextdef strStr(self, haystack, needle):next=[0]*len(needle)self.getnext(needle,next)j=0for i in range(len(haystack)):while j>0 and haystack[i]!=needle[j]:j=next[j-1]if haystack[i]==needle[j]:j+=1if j==len(needle):return i-len(needle)+1return -1

重复的子字符串

 def getnext(self,s):next=[0]*len(s)j=0next[0]=0for i in range(1,len(s)):while j>0 and s[j]!=s[i]:j=next[j-1]if s[i]==s[j]:j+=1next[i]=jreturn next[-1]  #返回最大相等公共子字符串的最大数def repeatedSubstringPattern(self, s):num=self.getnext(s)if len(s)%(len(s)-num)==0 and num!=0: #有可能返回为0,如"abac"return Trueelse:return False

相关文章:

  • 云化XR什么意思,Cloud XR是否有前景?
  • 详细分析Mysql中的JSON_OBJECT() 基本知识(附Demo)
  • 阅文集团CEO侯晓楠:建立10亿生态扶持基金,为好内容搭建舞台
  • LVS+KeepAlived高可用负载均衡集群
  • 网络编程(一)基本概念、TCP协议
  • vivado HW_SIO_RX
  • torch.squeeze() dim=1 dim=-1 dim=2
  • UML相关1
  • Docker 国内镜像源更换
  • [SWPUCTF 2022 新生赛]ez_1zpop(php反序列化之pop链构造)
  • MySQL之高级特性(三)
  • 道路堵塞监测识别摄像机
  • 推荐这两款AI工具,真的很好用
  • 屏幕空间环境光遮蔽(SSAO)在AI绘画中的作用
  • 【AI原理解析】— GPT-4o模型
  • [PHP内核探索]PHP中的哈希表
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • Asm.js的简单介绍
  • HTTP请求重发
  • JAVA之继承和多态
  • js写一个简单的选项卡
  • Promise初体验
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • 安装python包到指定虚拟环境
  • 将 Measurements 和 Units 应用到物理学
  • 看域名解析域名安全对SEO的影响
  • 移动端唤起键盘时取消position:fixed定位
  • 《码出高效》学习笔记与书中错误记录
  • 2017年360最后一道编程题
  • python最赚钱的4个方向,你最心动的是哪个?
  • ​第20课 在Android Native开发中加入新的C++类
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ​字​节​一​面​
  • #1015 : KMP算法
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (day 12)JavaScript学习笔记(数组3)
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (七)Knockout 创建自定义绑定
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (一) storm的集群安装与配置
  • (一)Java算法:二分查找
  • (译)2019年前端性能优化清单 — 下篇
  • (转)ABI是什么
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)VC++中ondraw在什么时候调用的
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .NET C# 操作Neo4j图数据库
  • .NET Micro Framework 4.2 beta 源码探析
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .net解析传过来的xml_DOM4J解析XML文件
  • ??在JSP中,java和JavaScript如何交互?
  • @DependsOn:解析 Spring 中的依赖关系之艺术
  • @RequestMapping处理请求异常