Python字符串长度递归

问题描述

| 我正在尝试编写一个简单的函数来递归地计算字符串长度,这是空白。 我可以简单地实现求和,斐波那契和阶乘,但是我试图仅用一个参数来创建最简单的函数,我不喜欢第二个作为计数器索引。 可以给我贴一些小东西吗?     

解决方法

这是你想要的?
def recursiveLength(theString):
    if theString == \'\': return 0
    return 1 + recursiveLength(theString[1:])
    ,这样做:
def length(s):
    return 0 if s == \'\' else 1 + length(s[:-1])

print length(\'hello world\') # prints 11
    ,如果不必是尾递归的:
def strlen(s):
  if s == \'\':
    return 0
  return 1 + strlen(s[1:])
不过,它的效率很低。     ,功能性Haskell风格
       >>> def RecListValue(list_value):
               return type(list_value) in [list,str,tuple] and list_value and    1+RecListValue(list_value[1:]) or 0
       >>> example_struct  = [range(10),(\"one\",)*12,\"simple string\",12]       
       >>> map(RecListValue,example_struct)
           [10,12,13,0]
       >>>