2017-08-25 45 views
0

假設我有一個字符串,如從另一字符串返回字符串基於關閉特定子串

S =「左左 - 右 - 右 - 左」

和一個空字符串n的數量和順序=''

並且從該字符串的左邊向右邊讀取顯示的左邊和右邊的數目,併爲每個左邊添加'a',爲出現的每個右邊添加'b'。

換句話說像

def convert(s): 

函數將返回「aabba」

我沿着s.count的思路思考,但B的需求是一個公司之間,以及數不會告訴你子字符串發生的位置。

回答

2

最簡單的方法是用b替換左邊和右邊。它應該工作

s = "left-left-right-right-left" 
s = s.replace("left","a") 
s=s.replace("right","b") 
s=s.replace("-","") 
+0

歡迎。如果這是您需要的,請接受解決方案。 –

0

最簡單的解決方案。

def convert(s): 
    s = s.replace("left", "a") 
    s = s.replace("right", "b") 
    s = s.replace("-", "") 
    return s 

OR

def convert(s): 
    return s.replace("left", "a").replace("right", "b").replace("-", "") 
0

我試過一個遞歸解決方案。

def rec_search(s, n): 
    if len(s) is 0: 
     return n 

    if s[-len('left'):] == 'left': 
     return rec_search(s[:-len('-left')], n) + 'a' 

    return rec_search(s[:-len('-right')], n) + 'b' 



print rec_search('left-left-right-right-left', '') 
0

這也可以使用正則表達式sub()進行如下:

import re 

s = "left-left-right-right-left" 
print re.sub('left|right|-', lambda x: {'left':'a', 'right':'b', '-':''}[x.group(0)], s) 

給你:

aabba 

它的工作原理與函數替換任何leftright|說在字典中查找替換文本。

相關問題