题目描述:
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
思路:
思路1:按空格切分为数组,翻转数组,再用空格连接
Python实现1:
// An highlighted block
class Solution:
def ReverseSentence(self, s):
# write code here
if s is None or len(s) == 0:
return s
return " ".join(s.split(' ')[::-1])
https://blog.csdn.net/yurenguowang/article/details/80584798
思路2:按空格切分为数组,依次入栈,再出栈(用空格连接)
// An highlighted block
class Solution:
def ReverseSentence(self, s):
# write code here
if s is None or len(s) == 0:
return s
stack = []
for i in s.split(' '):
stack.append(i)
ans = ""
while len(stack) > 0:
ans += stack.pop() + " "
ans = ans[:-1]
return ans
python实现3:
// An highlighted block
# -*- coding:utf-8 -*-
class Solution:
def ReverseSentence(self, s):
if not s:
return s
# 单词保持先后,单词之间的先后顺序反转
s = s.split(" ")
news = []
for word in range(len(s)-1, -1, -1):
news.append(s[word])
if word:
news.append(" ")
return "".join(news)