摘要:按單詞反轉字符串是一道很常見的面試題。在中實現起來非常簡單。上面的實現其實已經能滿足大多數情況,但是并不完美。比如第二個字符串中的感嘆號并沒有被翻轉,而且原字符串中的空格數量也沒有保留。要改進上面的方案還不把問題復雜化,推薦使用模塊。
按單詞反轉字符串是一道很常見的面試題。在Python中實現起來非常簡單。
def reverse_string_by_word(s):
lst = s.split() # split by blank space by default
return " ".join(lst[::-1])
s = "Power of Love"
print reverse_string_by_word(s)
# Love of Power
s = "Hello World!"
print reverse_string_by_word(s)
# World! Hello
上面的實現其實已經能滿足大多數情況,但是并不完美。比如第二個字符串中的感嘆號并沒有被翻轉,而且原字符串中的空格數量也沒有保留。(在上面的例子里其實Hello和World之間不止一個空格)
我們期望的結果應該是這樣子的。
print reverse_string_by_word(s)
# Expected: !World Hello
要改進上面的方案還不把問題復雜化,推薦使用re模塊。你可以查閱re.split() 的官方文檔。我們看一下具體例子。
>>> import re
>>> s = "Hello World!"
>>> re.split(r"s+", s) # will discard blank spaces
["Hello", "World!"]
>>> re.split(r"(s+)", s) # will keep spaces as a group
["Hello", " ", "World!"]
>>> s = "< Welcome to EF.COM! >"
>>> re.split(r"s+", s) # split by spaces
["<", "Welcome", "to", "EF.COM!", ">"]
>>> re.split(r"(w+)", s) # exactly split by word
["< ", "Welcome", " ", "to", " ", "EF", ".", "COM", "! >"]
>>> re.split(r"(s+|w+)", s) # split by space and word
["<", " ", "", "Welcome", "", " ", "", "to", "", " ", "", "EF", ".", "COM", "!", " ", ">"]
>>> "".join(re.split(r"(s+|w+)", s)[::-1])
"> !COM.EF to Welcome <"
>>> "".join(re.split(r"(s+)", s)[::-1])
"> EF.COM! to Welcome <"
>>> "".join(re.split(r"(w+)", s)[::-1])
"! >COM.EF to Welcome< "
如果你覺得用切片將序列倒序可讀性不高,那么其實也可以這樣寫。
>>> "".join(reversed(re.split(r"(s+|w+)", s)))
"> !COM.EF to Welcome <"
一句話搞定,so easy!
關于作者:Python技術愛好者,目前從事測試開發相關工作,轉載請注明原文出處。
歡迎關注我的博客 http://betacat.online,你可以到我的公眾號中去當吃瓜群眾。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/38211.html
摘要:反轉字符串公眾號愛寫編寫一個函數,其作用是將輸入的字符串反轉過來。輸入字符串以字符數組的形式給出。解題思路第一個字符與最后一個交換位置,繼而第二個與倒數第二個交換位置,一直交換到到中位數結束。持續交換它們所指向的元素,直到這兩個指針相遇。 Leetcode 344:Reverse String 反轉字符串 公眾號:愛寫bugWrite a function that reverses ...
摘要:反轉字符串公眾號愛寫編寫一個函數,其作用是將輸入的字符串反轉過來。輸入字符串以字符數組的形式給出。解題思路第一個字符與最后一個交換位置,繼而第二個與倒數第二個交換位置,一直交換到到中位數結束。持續交換它們所指向的元素,直到這兩個指針相遇。 Leetcode 344:Reverse String 反轉字符串 公眾號:愛寫bugWrite a function that reverses ...
摘要:公眾號愛寫給定一個字符串,你需要反轉字符串中每個單詞的字符順序,同時仍保留空格和單詞的初始順序。示例輸入輸出注意在字符串中,每個單詞由單個空格分隔,并且字符串中不會有任何額外的空格。 公眾號:愛寫bug(ID:icodebugs) 給定一個字符串,你需要反轉字符串中每個單詞的字符順序,同時仍保留空格和單詞的初始順序。 Given a string, you need to revers...
摘要:公眾號愛寫給定一個字符串,你需要反轉字符串中每個單詞的字符順序,同時仍保留空格和單詞的初始順序。示例輸入輸出注意在字符串中,每個單詞由單個空格分隔,并且字符串中不會有任何額外的空格。 公眾號:愛寫bug(ID:icodebugs) 給定一個字符串,你需要反轉字符串中每個單詞的字符順序,同時仍保留空格和單詞的初始順序。 Given a string, you need to revers...
閱讀 1243·2021-09-26 09:46
閱讀 1593·2021-09-06 15:00
閱讀 727·2019-08-30 15:52
閱讀 1126·2019-08-29 13:10
閱讀 1288·2019-08-26 13:47
閱讀 1485·2019-08-26 13:35
閱讀 2036·2019-08-23 18:38
閱讀 733·2019-08-23 17:59