力扣算法:反转字符串中的单词Ⅲ

力扣算法:反转字符串中的单词Ⅲ

  • 一、力扣算法:反转字符串中的单词Ⅲ
    • 1、问题
    • 2、思路
    • 3、解题代码
    • 4、时间与空间复杂度
  • 备注

一、力扣算法:反转字符串中的单词Ⅲ

1、问题

给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。

示例

输入:“Let’s take LeetCode contest”
输出:“s’teL ekat edoCteeL tsetnoc”

提示
在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。

2、思路

思路一
1、将字符串分割成单词列表。
2、将单词反转。
3、将反转后的单词,以空格分隔,连接成新字符串。

思路二
1、将字符串分割成单词列表。
2、将单词列表反转,以空格分隔,连接成新字符串。
3、将字符串反转。

思路三
1、将字符串反转,并分割成单词列表。
2、将单词列表反转,以空格分隔,连接成新字符串。

3、解题代码

#coding:utf-8
class Solution:
    def reverseWords(self, s: str) -> str:
    	#思路一
        # return " ".join(i[::-1] for i in s.split())
        #思路二
        # return " ".join(s.split(" ")[::-1])[::-1]
        #思路三
        return " ".join(s[::-1].split()[::-1])


if __name__ == "__main__":
    s = "Let's take LeetCode contest"
    print(Solution().reverseWords(s))

4、时间与空间复杂度

时间复杂度:O(N)
N为字符串的长度

空间复杂度:O(1)

备注

1、问题来源:

力扣(LeetCode)
https://leetcode-cn.com/problems/reverse-words-in-a-string-iii

你可能感兴趣的:(力扣算法,python,leetcode,字符串)