牛客最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,「student. a am i」。後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是「i am a student.」。cat對一一的翻轉這些單詞順序可不在行,你能幫助他麼?
二:按空格切分為陣列,依次入棧,再出棧(用空格連線)
三:兩次翻轉,先將字串全部原地翻轉。使用雙指標,分別對應前後兩個空格的位置,翻轉兩指標之間的子字串,即單詞。【這是劍指offer上的標準思路】
方法一:
class solution:
def reversesentence(self, s):
# write code here
if not s:
return s
return ' '.join(s.split(' ')[::-1]) ## a[::-1]實現陣列中數字倒序輸出
方法二:
# -*- coding:utf-8 -*-
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(' '):
ans = ""
while len(stack) > 0:
ans += stack.pop() + " "
ans = ans[:-1]
return ans
方法三:
# -*- coding:utf-8 -*-
class solution:
def reversesentence(self, s):
# write code here
if not s:
return s
ls = list(s)
rs = self.reverse(ls)
first = 0
res =
for i in range(len(rs)):
if rs[i] == ' ':
first = i + 1
return ' '.join(res) # 最後單詞與單詞之間也要連線起來,並且用空格' '連線
def reverse(self,s):
start = 0
end = len(s)-1
while start < end:
tmp = s[start]
s[start] = s[end]
s[end] = tmp
start += 1
end -= 1
return s
劍指Offer 翻轉單詞順序
題目描述 牛客最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,student.a am i 後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是 i am a stu...
劍指offer 翻轉單詞順序
輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。為簡單起見,標點符號和普通字母一樣處理。例如輸入字串 i am a student.則輸出 student.a am i 示例 1 輸入 the sky is blue 輸出 blue is sky the 示例 2 輸入 hello ...
劍指Offer 翻轉單詞順序
輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。為簡單起見,標點符號和普通字母一樣處理。例如輸入字串 i am a student.則輸出 student.a am i 示例 1 輸入 the sky is blue 輸出 blue is sky the 示例 2 輸入 hello ...