Leetcode刷题日记(2020.06.05):翻转单词顺序

题目如下:

Leetcode刷题日记(2020.06.05):翻转单词顺序_第1张图片

 

Leetcode刷题日记(2020.06.05):翻转单词顺序_第2张图片

 

 

 分析:本体涉及到多个空格当成一个空格,因此我立刻想到了Python中的split()函数,在这里首先普及下split()和split(' ')两个函数的区别:

 1 s1 = "we are family"#中间一个空格
 2 s2 = "we  are  family"#中间两个空格
 3 s3 = "we   are   family"#中间三个空格
 4 s4 = "we    are    family"#中间四个空格
 5 
 6 s1 = s1.split(" ")
 7 s2 = s2.split(" ")
 8 s3 = s3.split(" ")
 9 s4 = s4.split(" ")
10 
11 print(s1)#['we', 'are', 'family']
12 print(s2)#['we', '', 'are', '', 'family']
13 print(s3)#['we', '', '', 'are', '', '', 'family']
14 print(s4)#['we', '', '', '', 'are', '', '', '', 'family']
 1 s1 = "we are family"#中间一个空格
 2 s2 = "we  are  family"#中间两个空格
 3 s3 = "we   are   family"#中间三个空格
 4 s4 = "we    are    family"#中间四个空格
 5 
 6 s1 = s1.split()
 7 s2 = s2.split()
 8 s3 = s3.split()
 9 s4 = s4.split()
10 
11 print(s1)#['we', 'are', 'family']
12 print(s2)#['we', 'are', 'family']
13 print(s3)#['we', 'are', 'family']
14 print(s4)#['we', 'are', 'family']

从以上我的例子我们得出结论:split()的时候,多个空格当成一个空格;split(' ')的时候,多个空格都要分割,每个空格分割出来空。

接下来我们回归到本体,其实思路很简单,我们首先将这个字符串按照空格切分,然后呢,我们在借助于列表中可以倒序的方法,一行代码便能解决

代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
# @Time : 2020/6/5 15:06 

# @Author : ZFJ

# @File : 翻转单词顺序.py 

# @Software: PyCharm
"""


class Solution(object):
    def reverseWords(self, s):
        """
        :type s: str
        :rtype: str
        """
        # 这边我使用split(),便可以将多个空格看成是一个空格
        return ' '.join(s.strip().split()[::-1])


a = Solution().reverseWords(s='I am a student.')
print("反转后的句子是:{}".format(a))

b = Solution().reverseWords(s="  hello world!  ")
print("反转后的句子是:{}".format(b))

有人说,哎呀,我记得python中有个reverse()函数,我可以用吗?答案是肯定的,那么我们可以这么写,代码如下:

 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 """
 4 # @Time : 2020/6/5 15:06 
 5 
 6 # @Author : ZFJ
 7 
 8 # @File : 翻转单词顺序.py 
 9 
10 # @Software: PyCharm
11 """
12 
13 
14 class Solution(object):
15     def reverseWords(self, s):
16         """
17         :type s: str
18         :rtype: str
19         """
20         # # 这边我使用split(),便可以将多个空格看成是一个空格
21         # return ' '.join(s.strip().split()[::-1])
22         # 删除首尾的空格
23         s = s.strip()
24         # 按照空格分隔字符串
25         strs = s.split()
26         # 使用reverse()翻转单词列表
27         strs.reverse()
28         # 拼接为字符串并且返回
29         return ' '.join(strs)
30 
31 
32 a = Solution().reverseWords(s='I am a student.')
33 print("反转后的句子是:{}".format(a))
34 
35 b = Solution().reverseWords(s="  hello world!  ")
36 print("反转后的句子是:{}".format(b))

 

你可能感兴趣的:(Leetcode刷题日记(2020.06.05):翻转单词顺序)