zoukankan      html  css  js  c++  java
  • 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度

    给定一个字符串 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;
  • 相关阅读:
    hdu5081
    hdu5079
    hdu5076
    hdu5072
    codeforces 739E
    codeforces 739D
    2017.2其他简要题解
    spring事务传播回滚策略
    mybatis一级缓存和二级缓存
    spring-boot-mybatis-starter工作原理
  • 原文地址:https://www.cnblogs.com/cxyxiaobao/p/15540606.html
Copyright © 2011-2022 走看看