Python 解决递归问题
嗨,我一直在想如何像下面的例子一样操纵字符串 我有一根像这样的线Python 解决递归问题,python,Python,嗨,我一直在想如何像下面的例子一样操纵字符串 我有一根像这样的线 aa_bb_cc_dd 从那我想要 aa/aa_bb/aa_bb_cc/aa_bb_cc_dd 我需要这是递归的,这就是我遇到麻烦的地方。 有什么办法吗?我想你需要: a = "aa_bb_cc_dd" # split the string on `_` x = a.split("_") op = "" for i in range(len(x)): op = op + "_".join(x[:i+1])+"/" p
aa_bb_cc_dd
从那我想要
aa/aa_bb/aa_bb_cc/aa_bb_cc_dd
我需要这是递归的,这就是我遇到麻烦的地方。
有什么办法吗?我想你需要:
a = "aa_bb_cc_dd"
# split the string on `_`
x = a.split("_")
op = ""
for i in range(len(x)):
op = op + "_".join(x[:i+1])+"/"
print(op.strip("/"))
输出:
aa/aa_bb/aa_bb_cc/aa_bb_cc_dd
递归解决方案:
def recursive_fn(s, start_idx):
if start_idx >= len(s):
return ''
return s[:start_idx+2] + '/' + recursive_fn(s, start_idx + 3)
result = recursive_fn('aa_bb_cc_dd', 0)[:-1]
print(result)
一个简单的列表Comp,试试这个
inp_str = "aa_bb_cc_dd"
inp_list = inp_str.split("_")
print '/'.join(['_'.join(inp_list[:i]) for i in range(1,len(inp_list)+1)])
Results: aa/aa_bb/aa_bb_cc/aa_bb_cc_dd
希望这对你有帮助:)不过这不是一个递归解决方案。是的,我知道我认为我需要它,但我想不是。@anoordesai在这里使用递归可能是overkill@AkshayNevrekar同意,但问题是“我需要这是递归的”,这让我相信这是一个要求。