题目描述
自己的方法
首先这个题目之前肯定是做过的,但是,我就知道我如此暴力肯定会超时o(╥﹏╥)o
思路:
- 字符串长度为0或者1直接返回0/1;
- 外层循环:从第一个字符开始,依次将每一个字符作为结果字符串的首字符;
- 内层循环:依次加字符,若是出现重复就将此重复字符作为首字符;
- 可行是可行,但就是超时了。。。
1 | class Solution: |
别人的方法
思路:
- 遍历字符串,过程中将出现过的字符存入字典,key为字符,value为字符下标
- 用maxLength保存遍历过程中找到的最大不重复子串的长度
- 用start保存最长子串的开始下标
- 如果字符已经出现在字典中,更新start的值
- 如果字符不在字典中,更新maxLength的值
1 | class Solution: |
有了我,LeetCode的AC率恐怕。。。
