代码随想录打卡d8:翻转字符串里的单词、反转字符串、反转字符串II、替换数字、右旋字符串

翻转字符串里的单词

刷题日期:2024-04-24
[[151.翻转字符串里的单词]]

思路

双指针
split()函数

算法思路

算法细节

1.

Code

class Solution:
    def reverseWords(self, s: str) -> str:
        words = s.split()
        left = 0
        right = len(words) - 1
        while left < right:
            words[left], words[right] = words[right], words[left]
            left += 1
            right -= 1

        return ' '.join(words)

反转字符串

刷题日期:2024-04-24
[[344.反转字符串]]

思路

双指针

算法思路

算法细节

1.

Code

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

反转字符串II

刷题日期:2024-04-24
[[541. 反转字符串II]]

思路

双指针

算法思路

算法细节

1.

Code

class Solution:
    def reverse(self, i, j):
        while i < j:
            self.s[i], self.s[j] = self.s[j], self.s[i]
            i += 1
            j -= 1
    def reverseStr(self, s: str, k: int) -> str:
        self.s = list(s)
        for i in range(0, len(s), 2 * k):
            if len(s) - i >= k:
                self.reverse(i, i + k - 1)
            else:
                self.reverse(i, len(s) - 1)
        return ''.join(self.s)

替换数字

刷题日期:2024-04-24
[[替换数字]]

思路

算法思路

Python里面的string也是不可改的,所以也是需要额外空间的。空间复杂度:O(n)。

算法细节

1.

Code

class Solution:
    def replace(self, s):
        s = list(s)
        replace_str = "number"
        for i in range(len(s)):
            if ord(s[i]) <= 57 and ord(s[i]) >= 48:
                s[i] = replace_str
                
        return ''.join(s)
        
s = input()
print(Solution().replace(s))

右旋字符串

刷题日期:2024-04-24
[[右旋字符串]]

思路

直接把后k的字符串和前-k个连接

算法思路

算法细节

1.

Code

class Solution:
    def right_hand_str(self, s:str, k:int):
        return s[-k:] + s[:-k]
  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值