假设我有一个字符串,如从另一字符串返回字符串基于关闭特定子串
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
或|
说在字典中查找替换文本。
欢迎。如果这是您需要的,请接受解决方案。 –