2015-04-07 21 views

回答

1

的“下限”这里是当传递的字符串(或列表或元组...)是空的 - 在这种情况下,你只返回,这将结束递归:

def recdup(seq): 
    if not seq: 
     return seq 
    head, tail = seq[0:1], seq[1:] 
    return (head * 2) + recdup(tail) 
+0

这是完美的,但我不知道“如果不是seq:”在做什么。如果该语句是空字符串,则该语句返回true,如果该字符串是字符串,则返回false? – Slizzard73

+0

这真的是Python 101 - https://docs.python.org/2/reference/expressions.html#boolean-operations –

0
#iterate through x, store each value twice in y, print y joined by nothing 
x = 'abc' 
y=[i*2 for i in x] 
print ''.join(y) 
+0

这工作,但它不像递归呢?我认为这个解决方案是迭代的。 – Slizzard73

+0

当然是最pythonic的解决方案,但OP要求递归的一个... –

相关问题