确保在递归调用期间仅执行一次操作

时间:2015-09-26 22:12:57

标签: python recursion

我有一个程序,其中包含一个涉及递归调用该过程的步骤。我希望某个动作在第一次没有完成,但在其他时候完成它被递归调用。

def a(string):
    while string.startswith('/'):
        string =string[1:]
    stringa = string.split('/',1)

    if(len(stringa)>1):
        a(stringa)

基本上我的字符串是/a/b/c/d类型。我想在第一次将stringa作为{/}{a/b/c/d}并将连续递归作为。{                     
stringa = {a} {b / c / d}                     
stringa = {b} {c / d}                     
stringa = {c} {d}

1 个答案:

答案 0 :(得分:1)

基本模式是使用标志。你可以将标志设置为默认参数,这样你就不必在第一次调用函数时传递它,然后函数在递归调用时设置(或取消设置...)标志。

它看起来像这样:

delete[]

我并不确切知道如何将其转换为您的代码,因为它不清楚您第一次想要做什么。另外,您首先传入一个字符串,但您的递归调用是在列表中传递的。