leetcode 3. 无重复字符的最长子串
程序员文章站
2022-06-04 16:17:14
...
题目
注意! 尺取的时候先判断是否越界 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;
}
}