假设我有字符串"my name is",如何递归返回字符串"my name name is"?
你可以这样做
def double(s):
out = ''
for letter in s:
out=out+s+s
return out
这
INPUT:print(double("hello"))
OUTPUT:hheelllloo
下面的内容很简单。将第一个字母翻倍,然后递归调用其余的字母。基本大小写:空字符串:
def double(s):
if not s:
return s
return 2 * s[0] + double(s[1:])
double("my name is")
# 'mmyy nnaammee iiss'
请注意,递归方法的重复切片和另一个答案的重复字符串连接使两个解在时间复杂度上都是二次的。在算法上比较合理的(线性的)是str.join
一个线性构建的列表或生成器表达式:
def double(s):
return "".join(2*c for c in s)