这个实现的方法千万种,我列举其中一个。此代码仅仅考虑ASCII中的字符 。
两种算法仅有略微差距,代码中详细说
算法一public static int lengthOfLongestSubstring(String s) {
//定义一个 ASCII码范围的数组,每个ASCII都对应一个数字,所以字符串中每一个字符都可以变换成ASCII码
int arr[]=new int[128];
//将数组中的所有数置位-1;
for(int i=0;i
算法二
//与算法一比较,这个算法并没有给ASCII码数组赋值,默认值都为0。
public static int lengthOfLongestSubstring1(String s) {
int arr[]=new int[128];
int start=0;
int res=0;
for(int j=0;j
用图解释算法一
算法一明白了算法二也能轻松明白。图中解释了一部分代码机制,后面的就是重复循环,就不一一画出。



