【发布时间】:2015-07-08 01:17:36
【问题描述】:
我在编写 python 函数 replace_str 时遇到问题,它消耗 3 个非空字符串,即 base、target 和 rep。
第一个字符串base 表示您要更新的基本字符串。第二个字符串target 表示要替换的目标字符串,第三个字符串rep 表示将替换更新字符串中的目标的字符串。
该函数生成一个新字符串,其中target 字符串被base 字符串中的rep 字符串替换,但如果以下任一条件成立,则生成相同的base 字符串。
• 如果在base 字符串中找不到target 字符串,或者,
• 如果target 和rep 是相同的字符串。
不允许使用字符串方法replace和find
这是我目前所拥有的:
def replace_str(base, target, rep):
m = 0
n = len(target)
if base[m:n] == target:
new_base = base[0:m] + rep + base[n:]
return replace_str(new_base, target, rep)
else:
m = m + 1
n = n + 1
return replace_str(base, target, rep)
【问题讨论】:
-
你应该展示你的代码,人们会很乐意纠正你。没有看到你做了什么,就好像你在要求别人为你做你的工作,因为它闻起来像家庭作业,所以人们不太愿意提供帮助。
-
我完全理解,但我不知道从哪里开始。如果我有一些总体想法,我可以从那里开始工作
-
一种方法是像使用
replace和find一样编写它。然后实现你自己的replace和find。我不明白他们为什么这样教python。它似乎违背了语言用于设置这些限制的方式。 -
阅读河内塔算法。
-
我添加了一个到目前为止我所做的示例