Day 8 | 344.反转字符串 、541. 反转字符串II 、151.翻转字符串里的单词

344.反转字符串

建议: 本题是字符串基础题目,就是考察 reverse 函数的实现,同时也明确一下 平时刷题什么时候用 库函数,什么时候 不用库函数

题目链接/文章讲解/视频讲解:https://programmercarl.com/0344.反转字符串.html

思考

太简单了

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

541. 反转字符串II

建议:本题又进阶了,自己先去独立做一做,然后在看题解,对代码技巧会有很深的体会。

题目链接/文章讲解/视频讲解:https://programmercarl.com/0541.反转字符串II.html

思考

需要掌握下字符串切片,翻转的方法。
两种方法:

###
s = "Hello, World"
s_reversed = s[::-1] 
###

s_list = list(s)
s_list.reverse()
s_reversed = ''.join(s_list)
print(s_reversed)
class Solution:
    def reverseStr(self, s: str, k: int) -> str:
        res = ''
        n = len(s)
        i = 0
        while i < n:
            res+=s[i:i+k][::-1]
            res+=s[i+k:i+2*k]
            i+=2*k
        return res 

151.翻转字符串里的单词

建议:这道题目基本把 刚刚做过的字符串操作 都覆盖了,不过就算知道解题思路,本题代码并不容易写,要多练一练。

题目链接/文章讲解/视频讲解:https://programmercarl.com/0151.翻转字符串里的单词.html

思考

split可以解决

class Solution:
    def reverseWords(self, s: str) -> str:
        words = s.strip().split()
        res = ''
        for word in words:
            res = word +' '+ res
        return res.strip()
posted @ 2024-05-29 21:24  forrestr  阅读(42)  评论(0)    收藏  举报