class Solution:
def reverseWords(self, s: str) -> str:
#1、去除空格
s=self.removeSpace(s)
#2、反转字符串
s=self.reverseString(s)
#3、反转每个单词
s=self.reverseEachWord(s)
#4、拼接并输出
return ''.join(s)
def reverseEachWord(self,s):
#反转每个单词
#初始化指向每个单词首尾的指针
left=right=0
n=len(s)
while right < n:
while right < n and s[right] != ' ':
right+=1
#right指向空格
s[left:right]=self.reverseString(s[left:right])
left=right+1
right+=1
return s
def reverseString(self,s):
#反转字符串
left=0
right=len(s)-1
while left < right:
s[left],s[right]=s[right],s[left]
#交换后,左指针右移,右指针左移
left+=1
right-=1
return s
def removeSpace(self,s):
#去掉多余空格
#初始化双指针
left,right=0,len(s)-1
#去掉开头空格
while left < right and s[left]==' ':
left+=1
#去掉结尾空格
while left < right and s[right]==' ':
right-=1
#new_s存储多余空格后的剩下的
new_s=[]
#去掉中间的空格
while left <= right:
if s[left] != ' ':
new_s.append(s[left])
#若当前是空格,且前一个字符不是空格,添加
elif s[left]==' ' and new_s[-1] != ' ':
new_s.append(s[left])
left+=1
return new_s