AcWing 61. java-双指针
原题链接
简单
作者:
脆脆鲨
,
2019-05-02 21:46:03
,
所有人可见
,
阅读 1427
class Solution {
public int longestSubstringWithoutDuplication(String s) {
if(s==null || s.length()==0) return 0;
int[] nn=new int[26];
int left=0,right=0,max=0;
while(right<s.length()){
int ri=s.charAt(right)-'a';
//先将次数加上去
nn[ri]++;
if(nn[ri]>1){
//right的字符出现次数比较多,就将left往后移,直到right的次数为1
while(nn[ri]!=1){
int li=s.charAt(left)-'a';
nn[li]--;
left++;
}
//此时left指向重复字符的后一个
}
//加过次数后,right要往后移
right++;
max=Math.max(max,right-left);
}
return max;
}
}