代码随想录算法训练营第八天|leetcode344.反转字符串、leetcode541. 反转字符串II、卡码网54. 替换数字

news/2024/10/23 11:12:42

1 leetcode344.反转字符串

题目链接:344. 反转字符串 - 力扣(LeetCode)

文章链接:代码随想录

视频链接:字符串基础操作! | LeetCode:344.反转字符串_哔哩哔哩_bilibili

自己的思路:直接使用python的内置函数reverse进行一个操作

1.1 自己的代码

1.1.1 python的内置函数
class Solution:def reverseString(self, s: List[str]) -> None:"""Do not return anything, modify s in-place instead."""return s.reverse()
1.1.2 使用链表的方法
class Solution:def reverseString(self, s: List[str]) -> None:"""Do not return anything, modify s in-place instead."""left = 0right = len(s)-1while left<right:s[left],s[right] = s[right],s[left]left +=1right -=1

1.2 看文章后的思路

补充几种我目前没有想到的思路,但是我觉得也非常可行

1.2.1 切片的方法
class Solution:def reverseString(self, s: List[str]) -> None:"""Do not return anything, modify s in-place instead."""s[:] = s[::-1]
1.2.2使用循环
class Solution:def reverseString(self, s: List[str]) -> None:"""Do not return anything, modify s in-place instead."""n = len(s)for i in range(n//2):s[i],s[n-i-1]=s[n-i-1],s[i]

1.3 本题小结

  1. 这种比较容易的题目,如果可以不用内置函数,尽可能的不要使用里面的内置函数,其实还有很多方法也可以解决
  2. 那就浅浅记录一下自己第一次同一道题用了两种方法啦

2 leetcode541. 反转字符串II

题目链接:541. 反转字符串 II - 力扣(LeetCode)

文章链接:代码随想录

视频链接:字符串操作进阶! | LeetCode:541. 反转字符串II_哔哩哔哩_bilibili

自己的思路:这道题是有思路,但是写的时候就很头疼,而且代码内的内容无法写通,有一种很乱的感觉,嗯,自己没写出来这道题

2.1 看视频后的思路

2.1.1 根据C++思路转换的代码

这道题和C++语法不一样的地方就是,字符串内部不能进行直接的反转操作,所以就需要先将其转换为一个列表,然后对列表2*k长度数据的前k个数据进行翻转

class Solution:def reverseStr(self, s: str, k: int) -> str:s_list = list(s)for i in range(0,len(s_list),2*k):if i+k<=len(s_list):s_list[i:i+k]= reversed(s_list[i:i+k])else:s_list[i:] = reversed(s_list[i:])return ''.join(s_list)
2.1.2 文章内代码的理解

虽然字符串内部不能直接进行一个迭代的操作,但是字符串对其进行一个切片,切片位置的返回是可以变换的,因此也可进行另一种编码

class Solution:def reverseStr(self, s: str, k: int) -> str:p = 0while p<len(s):p2 = p+ks = s[:p]+s[p:p2][::-1]+s[p2:len(s)]p +=2*kreturn s
2.1.3 反转封装成一个函数

这种方法挺巧妙的,将上一道题的代码进行一个函数的封装,然后调用,但是还是需要将字符串转换成列表的形式

class Solution:def reverseStr(self, s: str, k: int) -> str:def substr(text):left = 0right = len(text)-1while left<right:text[left],text[right] = text[right],text[left]left +=1right -=1return texts = list(s)for i in range(0,len(s),2*k):s[i:i+k] = substr(s[i:i+k])return ''.join(s)

2.3 本题小结

  1. 这道题的一个注意点就是在字符串中不能直接进行循环,需要将其先转换为列表的形式,在进行循环遍历
  2. 不必每次都是加一循环遍历,循环也可以是多种的形式

3 卡码网54. 替换数字

题目链接:54. 替换数字(第八期模拟笔试)

文章链接:替换数字 | 代码随想录

自己的思路:这道题想的就是循环遍历,判断其是不是数字,如果是的话我就进行一个列表中的替换,否则就是直接循环

3.1 代码思路

s = input()
s = list(s)
for i in range(len(s)):if s[i].isdigit():s[i] = 'number'
print(''.join(s))

3.2 本题小结

  1. 字符串判断其是否为数字的方式是s[i].isdigitit()即可
  2. 感觉这一块的知识点相对而言要简单一点,做起来就顺利很多

4 今日小结

  1. python中的字符串是不能直接进行迭代替换的,这里今天第一次尝试的时候就报错了
  2. range函数在使用的过程中,其内部是(start,end,step)
  3. 字符串的题对我而言稍微熟悉一些,希望接下来学习也会让我越来越轻松吧

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

STAR: A Simple Training-free Approach for Recommendations using Large Language Models

目录概符号说明STARRetrievalRanking最后的结果Lee D., Kraft A., Jin L., Mehta N., Xu T., Hong L., Chi E. H. and Yi X. STAR: A simple training-free approach for recommendations using large language models. 2024.概 本文提出了一种融合语义/协同/时序信息的方法, 使…

最近做题小结

https://www.luogu.com.cn/problem/AT_abc373_e这道题是个二分 然后标答是两个二分 我用的树组+二分 需要对代数式进行拆分才能得到 我一开始看错题目了 看成大于等于他的票的人不多于M就行 然后就很简单 我觉得可以改编下这个题 很明显 最终前m个人一定当选 那么对于每一个人 …

前端ai工具v0使用配置

资料 ai工具Vo Installation - Tailwind CSS 以vue3 + sass为例,配置如下 安装tailwindcss npm install -D tailwindcss npx tailwindcss init安装依赖(可选) npm install lucide-vue-next更新 tailwind.config.js /** @type {import(tailwindcss).Config} */ module.export…

ERP开源项目Odoo

Odoo Odoo 的全称是 On Demand Open Object。名称反映了 Odoo 的起源和核心理念: •On Demand:代表 Odoo 作为一个按需使用的系统,可以根据企业的需要定制和部署各种模块。 •Open Object:强调 Odoo 是一个开源项目,允许用户访问和修改其源代码,以便根据具体业务需求进行…

2024.10.23 鲜花

基础数据结构进阶恋ひ恋ふ縁 诚、意地の悪い神の所业か? 奇迹?縁?袂触合う不思议 花ひとひら揺れて 不意に宿ってた うなじ解いてく春风 戯れはそこそこに 恋手ほどきしてくだしゃんせ 汤気にほんのり頬染て 夜风に愿ふ …いざ!!蝶と舞ひ花となりて 衣を乱して祓いましょう…

CMDB平台(进阶篇):企业级CMDB的高阶教程

企业IT架构日益复杂,配置项数量庞大且关系错综复杂。为了有效管理这些配置项,确保IT服务的稳定性和可靠性,配置管理数据库(Configuration Management Database,简称CMDB)系统应运而生。本文将深入探讨企业搭建CMDB系统所需具备的要素,以及实践路径,旨在为企业提供有益的…