给定一个字符串 s
,请你找出其中不含有重复字符的 最长子串 的长度
题解: 就是在一个字符串中,子串中没有重复的字符
例如:abda,那么最长是abd,bda都可以
解题图解:
采用双指针进行操作
代码
int length = s.length(); List<Character> list = new ArrayList<>(); int left =0; int slength =0; int keylength =0; HashMap<Character, Integer> map = new HashMap<>(); for (int i =0 ;i<length -1;i++){ list.add(s.charAt(i)); Integer integer = map.get(s.charAt(i)); if (integer == null){ slength =slength+1; map.put(s.charAt(i),i); }else{ keylength =i-left; slength =slength-keylength>0?slength:keylength; left++; } } return slength;