翻转字符串
题目描述
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
思路使用两次翻转的方法,第一次翻转整个句子,第二次翻转每一个单词,注意字符串先要转换为list才行
class Solution:
def ReverseString(self, listS, start, end):
if listS == []:
return []
while start < end:
listS[start], listS[end] = listS[end], listS[start]
start += 1
end -= 1
return listS
def ReverseSentence(self, s):
# write code here
if s == '':
return ''
start, end = 0, 0
listS = list(s) #需要将字符串转变为数组才能更改
self.ReverseString(listS, 0, len(s) - 1)
while True:
while end != len(listS) and listS[end] != ' ':
end += 1
end -= 1
self.ReverseString(listS, start, end)
if end == len(listS) - 1:
return ''.join(listS)
start = end + 2
end = start
还没有评论,来说两句吧...