2016-11-28 87 views
-3

我有這樣的代碼:功能以顛倒順序的句子

text = str(input('Input sentence, please: ')) 

def reverse(text): 
    r_text = '' 
    index = len(text) - 1 

    while index >= 0: 
     r_text += text[index] 
     index -= 1 

    return r_text 

print(reverse(text)) 

但輸出例如:怎麼了 - > PU stahW,我需要它是 - >高達請告訴我

換句話說:

寫一個函數的僞代碼和代碼,使句子中的單詞反轉。

輸入

"This is awesome" 

輸出

"awesome is This". 

給大O符號。在功能

>>> " ".join("Hello world".split()[::-1]) 
'world Hello' 

,或者,如果你想讓它:

回答

0

你可以做到這一點

>>> def reverse(text): 
...  return " ".join(text.split()[::-1]) 
... 
>>> reverse("Hello world") 
'world Hello' 
1

split應該工作。這是由空白塊。然後顛倒陣列。最後加入對'

a = "What's up" 

bits = a.split() 
print(bits) # yields: ["What's", 'up'] 

bits_reversed = bits[::-1] 
print(bits_reversed) # yields: ['up', "What's"] 

print(' '.join(bits_reversed)) 
+0

我得到一個奇怪的輸出: '[ 「這是什麼」, '向上'] [ '向上', 「什麼是」] 了什麼 ' –

+0

加入在'''上的數組'見編輯 – Shaun

+0

@ErikTonev這是因爲有三個打印語句來顯示答案正在做什麼。 –

4
def reverse_order(sentence): 
    return ' '.join(sentence.split(' ')[::-1]) 
+0

我相信'split'的參數是多餘的。 ('.split()'足夠) – Alec

+0

@Alec唔,不完全是。如果沒有爭論,它將在任何空白區域分裂,而不僅僅是空間。但是,我不確定哪一個是最好的。 –

0

反向陣列可以使用reverse()功能list

s = "What's up" 
l1 = s.split() 
l1.reverse() 
res = ' '.join(l1) 

輸出:

>>> res 
"up What's" 

在自定義功能:

def reverse_sentence(s): 
    l = s.split() 
    l.reverse() 
    return ' '.join(l) 

輸出:

>>> reverse_sentence("What's up") 
"up What's"