代码中用于查找不包含重复字符的最长子字符串长度的leetcode ide中的索引超出范围



下面给出了pycharm中的预期输出,另一方面它在leetcode中的return length_of_substring[-1]行中得到了超出范围的索引。

为什么会出现这样的错误?

class Solution:
def lengthOfLongestSubstring(self, string):
unique_list = []
length_of_substring = []
for i in string:
if i not in unique_list:
unique_list.append(i)

else:
length_of_substring.append(len(unique_list))
unique_list.clear()
unique_list.append(i)
length_of_substring.sort()
return length_of_substring[-1]

if __name__ == '__main__':
s = input()
obj = Solution()
result = Solution.lengthOfLongestSubstring(obj, s)
print(result)

首先:在这里发布时,您应该清楚地指定(i(代码的目标和(ii(一个自包含的最小示例。

在您的情况下,很难回答您的问题,因为您没有弄清楚您的代码实际上试图实现什么。

关于您的错误消息

您的代码没有考虑到字符串也可能只由唯一元素(例如"abcd"(组成的事实。在这种情况下,永远不会到达代码的else子句,并且length_of_substring将保持为空。如果您随后调用length_of_substring[-1],则会引发一条错误消息。

最新更新