我自行修改的代码的内容
else
{
while(left < right)
{
temp[s[left]]=0;
left++;
cnt=0;
}
}
我将我自行修改的部分进行了红色标注,首先这道题的代码我进行了自己的历程尝试
然后我用了参考答案的代码 和自己的历程 成功的给自己弄蒙了
正常我输入的历程是这样的 :a b c d a e f g h k
然后我昨天一直想的是遇到第二次a以后 不应该删除前面所有出现的字符然后得到答案5么
但是我昨天理解的那个答案是9 为什么会这样呢 我自己画图手写了一遍也是9
但是这就是我犯错误也是一个误区 希望大家引以为戒!
首先我没有读懂题目的要求 他的要求是 请你找出其中不含有重复字符的 最长子串 的长度。
什么是最长字串的长度 ! 举个例子 就上面的那个好了
在昨天之前我一直以为最长字串是这样的
例如 : abcdaefghk
我以为的最长字串 : aefghk
实际上其实是 : bcdaefghk
这是在我反复观看力扣的讲解和讨论之后还是不懂的 最后还是没找到我所理解的点
然后去了群里问了一下网友们才明白为什么,所以大家一定要找个学长学姐问一问!谁都好,只要能帮助你解决问题就可以!
这是我今天复盘这道题发现的 为什么我昨天没有发现问题呢 我觉得我应该反省自身 这个问题昨天就应该发现 昨天其实也尝试了自己举例子 但是昨天稀里糊涂的就以为自己理解了 今天复盘在书写的时候就发现其实我昨天并没有完全理解 然后我自行尝试修改了一下昨天的代码 最后在提交历程的时候发现了这个例子才让我明白我的问题
输入:
"dvdf"
输出:
2
预期结果:
3
vdf才是真正的最长字串 所以昨天的代码是没有任何问题的
但是我今天自行修改的代码内容可以针对什么呢
就是从头开始计算,直到遇到重复的字符为止的长度,然后如果后面还有字符则重新以当前重复的字符开始重新计算 (可能说的有点墨迹但是希望还是能帮助大家理解)
而不是像力扣上面要求的最长的子串长度
今日反省:在做题目之前要知道自己做的题目的要求!这个一定要知道,如果你连自己的目标都找不到的话,那你无论怎么努力方向都错了 那结果也不会好到哪里去!
如果我上述有什么写错或者理解错的 欢迎给我留言 !
最后给自己的留言:
我要是没有什么意外的话大概从今往后每天都会一道例题吧!虽然不多,但是还是希望可以坚持下去。我也知道自身是属于比较懒惰的人,没有什么东西催促真的是不知道前进,我现在也只能每天逼迫自己坚持下去,只为了想找到一份满意的工作可以实现经济独立,实在是憋了太久没有放开了玩耍了,学习中惦记着玩,玩的时候惦记着学。希望每天逼迫自己来写题和学STM32能够改善自己的这份焦虑和心态吧!毕竟已经大三了今年是2022的秋招,我的学长们工作找的也不是很理想,我也能感觉到自己和他们的差距所以还是希望能坚持下去吧。
也祝愿看到此文章的你们无论是考研还是找工作都能选择一条属于自己的路坚持走下去!!!!
加油!