151. Reverse Words in a String刷题笔记

简单但是麻烦

class Solution:
    def trim_spaces(self,s):
        left = 0
        right = len(s)-1
        while left<=right and s[left] == ' ':
            left += 1
        while left<=right and s[right] == ' ':
            right -= 1
        tmp = []
        while left<=right:
            if s[left]!=' ':
                tmp.append(s[left])
            elif tmp[-1]!=' ':
                tmp.append(' ')
            left += 1
        return tmp
    
    def reverse_string(self,nums,left,right):
        while left<right:
            nums[left], nums[right]=nums[right],nums[left]
            left+=1
            right-=1
        return None
    
    def reverse_each_word(self, nums):
        start=0
        end=0
        n=len(nums)
        while start<n:
            while end<n and nums[end]!=' ':
                end+=1
            self.reverse_string(nums,start,end-1)
            start=end+1
            end+=1
        return None
    
    def reverseWords(self, s: str) -> str:
        l = self.trim_spaces(s) 
        self.reverse_string( l,  0, len(l) - 1)
        self.reverse_each_word(l)
        return ''.join(l)

        
        
        

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值