2014-04-04 71 views
-5

所以我做了一個簡單的程序來將英語轉換成PigLatin。但現在我堅持如何將其轉換回英文。下面是英文的,以PigLatin一個例子:將明膠轉換爲英文?

輸入 世界您好,這是偉大的

輸出

elloXhaWEY orldXwWEY isXthWEY isWAY eatXgrWEY 

所以,規則是: 1.如果字與元音開頭,它以WAY結尾(例如eal - > ealWAY) 2.如果單詞以輔音開始,只要存在輔音,它就會持續檢查,剝離第一部分,然後轉換它。 (例如This - > isXthWEY)注意剝離後的字母X和WEY後面的X.

我設法讓一個程序將它們轉換爲。但是,我怎樣才能從亂七八糟的信件轉換回英文?

我的想法是從結尾檢查每個單詞。如果以WEY結尾,我將最後3個單詞去掉,從最後一個字母中取出字母,直到達到X,然後去掉X,然後將字移到開頭。但我失去了如何去做。

任何幫助表示讚賞。

謝謝。

+0

那麼,你甚至試過?你在一個小時前問了另一個對手。我們不做家庭作業。 – SzieberthAdam

+0

您的問題充滿了矛盾:文本中的「X-WEY」,輸出中的「X-WAY」,帶額外「a」的「elloXhaway」等。 – Hyperboreus

+0

我試過了。但它不起作用。 –

回答

4

像這樣的東西?

def decode (line): 
    return ' '.join (token [:-3] 
     if token.endswith ('WAY') 
     else (lambda a, b: b [:-3] + a) (*token.split ('X')) 
     for token in line.split()) 

樣品:

>>> decode ('elloXHWEY orldXwWEY isXthWEY isWAY eatXgrWEY') 
'Hello world this is great' 

諾塔好處:可能無法用言語conaining 'X'。但它應該是讓你開始的東西。

+0

我設法讓它在更長的過程中工作。代幣對我來說是新鮮事物,與我的相比,你的答案非常優雅。我會牢記這一點。謝謝 –

+0

@Sab Gald提供幫助。 'token'只是一個變量名。你也可以稱它爲'x','草莓'或'Sab'。 – Hyperboreus