- 翻转字符串里的单词 给定一个字符串,逐个翻转字符串中的每个单词。
示例 1:
输入: “the sky is blue” 输出: “blue is sky the”
示例 2:
输入: " hello world! " 输出: “world! hello” 解释:
输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
示例 3:
输入: “a good example” 输出: “example good a” 解释:
如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
EMMMMMMM,写python的肯定一眼就有了思路,split切片,反序,join输出,收工
class Solution:
def reverseWords(self, s: str) -> str:
c=list(s.split())
c=c[::-1]
return " ".join(c)
不能啥都靠内置函数是不是,所以写一个正经的轮子,遍历字符串,用一个flag记录当前是搜寻状态还是滞空状态,当在搜寻状态遇到空字符串时,变为滞空状态,利用指针将这个字符整体加在结果最前面,当滞空遇到非空字符串时,变为搜寻状态,指针标记搜寻开始点
代码如下:
class Solution:
def reverseWords(self, s: str) -> str:
c=0
flag=0
end=""
for i in range(len(s)):
if(flag==0):
if(s[i]!=" "):
c=i
flag=1
else:
continue
else:
if(s[i]==" "):
end=s[c:i]+" "+end
flag=0
else:
continue
if(flag==1):
end=s[c:i+1]+" "+end
return end[:-1]
那我为啥要造轮子呢,这得从一只蝙蝠说起