【问题标题】:Python: implement split() using recursionPython:使用递归实现 split()
【发布时间】:2022-01-24 10:34:17
【问题描述】:

最近我试图找出一个实现 split() 函数的问题,目标是完成一个函数,该函数将带有分隔符的字符串(例如“-”)或带有“/”的路径字符串拆分为 a 中的单词列表递归方式。

inputString = "Hello-World"
expectedOutput = ["Hello", "World"]

使用 find() 尝试了解决方案,不使用线性函数还有其他可能的解决方案吗?

def splitString(str, delim):
  list=[]
  i=str.find(delim)
  if i!=-1:
    list.append(str[0:i])
    newStr=str[i+1:]
    list.extend(splitString(newStr, delim))
  else:
    list.append(str)
  return list

【问题讨论】:

  • 请避免使用strlist 作为变量或函数参数的名称。这些已经是python内置类list和python内置类str的名称。如果您通过将这些名称重用于特定变量来隐藏这些名称,那么一切都会变得混乱。

标签: python recursion


【解决方案1】:

最好不要在 Python 中使用 camelCase 来命名函数和变量。无论如何,您可以使用递归将字符串拆分为单词,如下所示:

input_string = "Hello-World"
words = []

def split_string(string, delim, head=''):
    if string:
        if string[0] == delim:
            words.append(head)
            return split_string(string[1:], delim)
        else:
            return split_string(string[1:], delim, head + string[0])
    else: 
        words.append(head)
        return ''

split_string(input_string)
print(words)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 2015-08-14
    • 1970-01-01
    • 1970-01-01
    • 2019-10-29
    • 2020-07-21
    • 1970-01-01
    相关资源
    最近更新 更多