给定一个字符串及其两个子字符串(名为a和b),我需要编写一个递归函数,用a替换所有出现的b,然后返回新字符串。
有人可以帮助我如何开始吗?
答案 0 :(得分:3)
递归地,您知道您的函数适用于:
b
开头的字符串必须将b
替换为a
并检查字符串的其余部分; 以下是算法:
def rec_replace(string, a, b):
if not string: #if the string is empty
return ""
elif string[:len(b)] == b: #if the string start with b, replace it with a
return a + rec_replace(string[len(b):], a, b)
else: #else, add this character and go to the next one
return string[0] + rec_replace(string[1:], a, b)
测试:
print rec_replace("hello this is hello a simple hello test", "ok", "hello")
输出:
ok this is ok a simple ok test