劍指offer 翻轉單詞順序序列 Python

2021-09-13 14:34:35 字數 1486 閱讀 9095

牛客最近來了乙個新員工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 ...