【发布时间】:2019-02-15 20:52:42
【问题描述】:
我有一个函数“lengthOfLongestSubstring”,如下面的代码,需要用“s”的子字符串递归调用该函数(例如s[3:]) 我怎么称呼它?
我试过这样递归调用: lengthOfLongestSubstring(s[1:])
但它弹出一个错误“NameError: name 'lengthOfLongestSubstring' is not defined”
class Solution:
def lengthOfLongestSubstring(self, s: 'str') -> 'int':
count = 0
list1 = []
for i in range(len(s)):
if s[i] not in list1:
list1.append(s[i])
count= count+1
print (list1)
else:
substr = s[i:]
if (count < lengthOfLongestSubstring(substr)):
count = lengthOfLongestSubstring(substr)
break
return (count)
预期函数的递归调用,但得到下面提到的错误:
NameError: name 'lengthOfLongestSubstring' is not defined
Line 15 in lengthOfLongestSubstring (Solution.py)
Line 29 in __helper__ (Solution.py)
Line 60 in _driver (Solution.py)
Line 73 in <module> (Solution.py)
【问题讨论】:
-
已给出问题中的代码。你能参考一下吗?
-
那么,您如何在该类的方法中调用该类的方法?这个问题目前和递归没有任何关系
-
删除类定义,它会起作用。
标签: python-3.x function recursion