假設我有一個字符串,如從另一字符串返回字符串基於關閉特定子串
S =「左左 - 右 - 右 - 左」
和一個空字符串n的數量和順序=''
並且從該字符串的左邊向右邊讀取顯示的左邊和右邊的數目,併爲每個左邊添加'a',爲出現的每個右邊添加'b'。
換句話說像
def convert(s):
函數將返回「aabba」
我沿着s.count的思路思考,但B的需求是一個公司之間,以及數不會告訴你子字符串發生的位置。
假設我有一個字符串,如從另一字符串返回字符串基於關閉特定子串
S =「左左 - 右 - 右 - 左」
和一個空字符串n的數量和順序=''
並且從該字符串的左邊向右邊讀取顯示的左邊和右邊的數目,併爲每個左邊添加'a',爲出現的每個右邊添加'b'。
換句話說像
def convert(s):
函數將返回「aabba」
我沿着s.count的思路思考,但B的需求是一個公司之間,以及數不會告訴你子字符串發生的位置。
最簡單的方法是用b替換左邊和右邊。它應該工作
s = "left-left-right-right-left"
s = s.replace("left","a")
s=s.replace("right","b")
s=s.replace("-","")
最簡單的解決方案。
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("-", "")
我試過一個遞歸解決方案。
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', '')
這也可以使用正則表達式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
它的工作原理與函數替換任何left
right
或|
說在字典中查找替換文本。
歡迎。如果這是您需要的,請接受解決方案。 –