题目是这样的:把student a am I变成 I am a student.
下面描述几种思路:
'''
例如,“student. a am I”。
后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”
只需要对每个单词做翻转,然后再整体做翻转就得到了正确的结果。
'''
class Solution:
def ReverseSentence(self, s):
# write code here
s_list = s.split(' ')
return ' '.join(s_list[::-1])
# -*- coding:utf-8 -*-
# 字符串不能直接操作,转换成list
class Solution2:
def ReverseSentence(self, s):
if not s: return s
s = list(s)
self.reverse(s, 0, len(s) - 1)
start, end = 0, 0
while start < len(s):
# if s[start] == ' ':
# start += 1
# end += 1
# elif end == len(s) or s[end] == ' ':
# self.reverse(s, start, end - 1)
# end += 1
# start = end
# else:
# end += 1
# return ''.join(s)
if end == len(s) or s[end] == ' ':
self.reverse(s, start, end - 1)
end += 1
start = end
else:
end += 1
return ''.join(s)
def reverse(self, s, start, end):
while start < end:
s[start], s[end] = s[end], s[start]
start += 1
end -= 1
re=Solution2().ReverseSentence(' girl a am I')
print(re)