给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例 1:
输入: “Let’s take LeetCode contest”
输出: “s’teL ekat edoCteeL tsetnoc”
方法1:
利用指针
class Solution(object):
def reverseWords(self, s):
"""
:type s: str
:rtype: str
"""
# 指针
s = list(s)
start = 0
end = 0
# for loop中,end指针来遍历字符串,start来记录单词的初始位置
# 如果遍历到的字母不是空格,end右移;如果是空格,就反转这个单词,并且end右移然后更新start到下一个单词的起始位置
for i in s:
if i != ' ':
end+=1
else:
s[start:end] = s[start:end][::-1]
end+=1
start = end
# 当退出for loop的时候,对最后一个单词没有进行任何处理,所以还要再反转一下
s[start:end] = s[start:end][::-1]
return ''.join(s)
方法2:
利用split()函数
class Solution(object):
def reverseWords(self, s):
"""
:type s: str
:rtype: str
"""
ss = s.split()
for i in range(len(ss)):
ss[i] = ss[i][::-1]
return ' '.join(ss)