欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

leetcode 3. 无重复字符的最长子串

程序员文章站 2022-06-04 16:17:14
...

题目
leetcode 3. 无重复字符的最长子串
注意! 尺取的时候先判断是否越界 r<n&&vis[s.charAt(r)-'a'+1000]==0 而不能 vis[s.charAt(r)-'a'+1000]==0&&r<n
绝了,平常打acm都不用string,用char数组没管过这些。。反正char数组开得大。

class Solution {
    public int max(int a,int b){return a>b?a:b;}
    public int lengthOfLongestSubstring(String s) {
        int[] vis=new int[2000];
        int l=0,r=0,n=s.length(),ans=0;
        while(r<n){
            while(r<n&&vis[s.charAt(r)-'a'+1000]==0) {++vis[s.charAt(r)-'a'+1000];++r;}
            ans=max(ans,r-l);
            if(r==n) break;
            --vis[s.charAt(l)-'a'+1000];++l;
        }
        return ans;
    }
}