我正在尝试编写一个简单的函数来递归计算字符串长度。
我可以很容易地进行求和、斐波那契和阶乘,但我试图用一个参数创建最简单的函数,我不喜欢第二个作为计数器索引..
可以为我发布一些小东西吗?
我正在尝试编写一个简单的函数来递归计算字符串长度。
我可以很容易地进行求和、斐波那契和阶乘,但我试图用一个参数创建最简单的函数,我不喜欢第二个作为计数器索引..
可以为我发布一些小东西吗?
这是你想要的?
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
功能性的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]
>>>
如果它不必是尾递归的:
def strlen(s):
if s == '':
return 0
return 1 + strlen(s[1:])
不过效率很低。