2025/09/30
这个问题的解法并不复杂,但不容易想到。
我尝试了从左边开始遍历,每个字符都维护一个最长数值,然后遇到重复字符时,再分情况处理。结果是,一开始3个测试用例全过了,结果提交后有一大半没过,于是我在这个烂摊子上一直加条件,结果变得越来越复杂,然后也过不了。
后来我想到了递归,即把字符串按枢轴字符分成两部分,分别求解,然后合并结果。但这个思路超时了,测试用例也超了。
2025/10/16
思路:用两个指针维护当前考虑的子串,一个集合(哈希表)存,如果不重复,就加进来,如果重复,就把后面的指针往后找到这个重复的位置,中间经过的位置从集合中踢掉。在其中监控集合的count,标记最大值。
评价:完全正确,秒了(可能有概率想不到)