021-力扣刷题151--翻转字符串里的单词
给定一个字符串,逐个翻转字符串中的每个单词。
示例 1:
输入: "the sky is blue" 输出: "blue is sky the" 示例 2:
输入: " hello world! " 输出: "world! hello" 解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。 示例 3:
输入: "a good example" 输出: "example good a" 解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
说明:
无空格字符构成一个单词。 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
进阶:
请选用 C 语言的用户尝试使用 O(1) 额外空间复杂度的原地解法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | class Solution(object): def reverseWords(self, s): """ :type s: str :rtype: str """ if s == "": #什么也没有就直接输出s return s ls = s.split() #分割字符串成一个个的单词列表 # print(ls) if ls == []: return "" result = "" for i in range(0,len(ls)-1): #这里循环添加的时候是从最后面添加到倒数第二个,原因是我们要添加" ",因此倒数第一个最后的时候直接进行append就好了 result += ls[len(ls)-1-i] + " " #len(ls)-1是列表的最后一个索引 result += ls[0] return result |