敖丙教我写算法
前言 有一说一,敖丙还是有东西。 说实话,第一次写算法的怪怪,有点紧张,毕竟是一个数学怎么也及不了格的小菜。 大一上期末全班倒数第4,噗呲,学渣实锤~ 写之前有在想,怎么把算法写的比较有意思,就像大学高数课,说实话,老师讲的是真心无聊。。 如果不是被所谓的学业规则所限制,真的很难听下去。 设 M(x0,y0,z0) 为平面上的已知点,n=(A,B,C) 为法向量,M(x,y,z) 为平面上的任一点,则平面的点法式方程为 xxxx,听着听着就睡着了。。。(老师,我扛不住了!!) 所以,怪怪会尽量写得有趣一点,让你看完差不多可以记住这个算法思想。 今天的题目是这样的,给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 简单解释一下。 比如给定字符串“ 丙丙接水怪接 ” 第一步,找出字符串中不含有重复字符的子串 丙 丙接 丙接水 丙接水怪 水怪接 第二步,计算出各个子串的长度,并取最大值。 在这里最大值显然就是 4,所以答案就是 4 ok,做完例题,其实很容易可以发现,核心就是第一步,找出不含有重复字符的子串。 那究竟要怎么找呢,为了便于第一次看这个算法的小伙伴好理解,我画了几张图,大家看完还不懂,加微信骂我 渣男 好了! 找两把枪,起始的时候都指向第一个字符。 我们顺利的找到了第一个不重复的子串,“丙”。 接着保持红枪不动,绿枪向后移动一位。 此时发现两枪之间,字符重复了