Получает принятый для всех тестовых случаев, если введенная строка не является слишком длинной. Почему это происходит, и могу ли я сделать это решение рекурсивно? Это потому, что python имеет ограничения рекурсии в качестве языка (будет ли это работать в java?) Или что-то еще не так?
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
if len(s) == 0:
return 0
if len(s) == 1:
return 1
start = 0
index = 0
length = len(s)
list = []
strr = ""
listt = self.getSubstring(s,[],index,list,start,length)
for i in listt:
if len(i) > len(strr):
strr = i
print(len(strr))
return len(strr)
def getSubstring(self,s,keys,index,list,start,length):
#print("s",s)
#print("start",start)
#print("index",index)
#print("keys",keys)
#print("list",list)
if index == len(s)-1:
if s[index] in keys:
list.append(s[start:index])
#print(list)
return list
else:
list.append(s[start:index+1])
#print(list)
return list
if s[index] in keys:
list.append(s[start:index])
return self.getSubstring(s,[],start+1,list,start+1,length)
else:
keys.append(s[index])
return self.getSubstring(s,keys,index+1,list,start,length)