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

算法训练第八天

344.反转字符串

思路:

我们用双指针来解,i指向开头,j指向结尾,当i小于j时,每次交换s[i],s[j]即可。

代码:

class Solution(object):def reverseString(self, s):""":type s: List[str]:rtype: None Do not return anything, modify s in-place instead."""i = 0j = len(s)-1while i<j:s[i],s[j] = s[j],s[i]i+=1j-=1return s

541.反转字符串II

思路:

因为python中的字符串是不可变类型,因此我们需要将字符串转为字符数组,然后再进行修改。我们使用双指针和滑动窗口算法,使用i指向滑动窗口的起始位置,j指向滑动窗口的最后一个元素,然后反转。只是最后需要判断结束循环时滑动窗口的状态。

代码:

class Solution(object):def reverse_str(self,s,left,right):i = leftj = rightwhile i<j:s[i],s[j] = s[j],s[i]i+=1j-=1def reverseStr(self, s, k):""":type s: str:type k: int:rtype: str"""i = 0j = 0str = list(s)while j < len(str)-1:while j - i + 1 < 2 * k and j < len(str)-1:j += 1if j==len(str)-1:breakself.reverse_str(str, i, i + k - 1)i = j + 1j += 1if j-i+1<k:self.reverse_str(str,i,j)else:self.reverse_str(str, i, i + k - 1)ans = "".join(str)return ans

54.替换数字

思路:

我们使用的是python,因此必须要开一个辅助数组,那这样就很简单了,我们只需要遍历字符串放入数组,如果是数字,就放入一个number就好了。

代码:

def main(s):str = list(s)new_str = []for i in str:if ord(i)>=ord('0') and ord(i)<=ord('9'):new_str.append('number')else:new_str.append(i)print(''.join(new_str))if __name__=='__main__':s = input()main(s)

相关文章:

  • Vue Router 导航方法完全指南
  • 【使用 Loki + Promtail + Grafana 搭建轻量级容器日志分析平台】
  • dxf、dwg中文字矩阵变换
  • 安装 Nginx
  • QT链接其他项目的C++文件报链接错误
  • sifli 52 反馈standby待机rc10k 15秒校准起来后,底电流会变大
  • 交叉熵的意义
  • Linux-linux和windows创建新进程的区别以及posix_spawn
  • 04.两数之和
  • 数据库同步是什么意思?数据库架构有哪些?
  • 《AI角色扮演反诈技术解析:原理、架构与核心挑战》
  • Linux基础开发工具——yum工具
  • QML技术优势
  • day21 常见的降维算法
  • 英国2025年战略防御评估报告:网络与电磁域成现代战争核心
  • 【学习笔记】Python金融基础
  • Linux 云服务器部署 Flask 项目(含后台运行与 systemd 开机自启)
  • 智能推荐系统:协同过滤与深度学习结合
  • # Vue + OpenLayers 完整项目开发指南
  • 【unity游戏开发入门到精通——通用篇】从零掌握UnityWebRequest:文件下载、表单提交、超时处理、断点续传
  • 公司网站制作专业公司/链接交换平台
  • dedecms做网站怎么查看/广州竞价托管公司
  • 杭州哪里做网站好/小程序设计
  • 搭建一个商城类网站/拉新推广渠道
  • 沈阳网站建设的公司哪家好/国内高清视频素材网站推荐
  • 哪个语言做动态网站好用/微信广告怎么投放