• leetcode


    题目链接:https://leetcode.com/problems/longest-substring-without-repeating-characters/description/

    题目要求:求出最长的不重复子串

    思路:

    1、采用map,遍历字符串,将每个字符put进map
    2、如果长度为1,直接输出1
    3、end-begin+1(注意+1)
    end为当前遍历到的位置,
    begin为重复位置+1
    4、在遍历字符串的时候,判断当前字符是否存在resultMap.containsKey(key),
    如果不存在,将其put进map,并维护end-begin+1
    如果存在,重置begin位置,计算长度
    (begin的位置判断:如果当前begin位置index比重复位置大,需要begin==当前begin位置index,否则等于重复位置)
    begin = begin > (resultMap.get(key)+1) ? begin : (resultMap.get(key)+1)
    长度维护:
    result = result > (end-begin+1) ? result : (end-begin+1);

    public class Solution {
        public int lengthOfLongestSubstring(String s) {
            char str[] = s.toCharArray();
            int len = str.length;
            if(len == 1 ){
                return 1;
            }else {
                //        int sum = 0;
                int result = 0;
                int begin = 0;
                int end = 0;
                Map<String,Integer> resultMap = new HashMap<String, Integer>();
                for(int i = 0; i<len; i++){
                    String key = str[i]+"";
                    end = i;
                    //未重复
                    if(!resultMap.containsKey(key)){
                        resultMap.put(key,i);
                        result = result > (end-begin+1) ? result : (end-begin+1);
                    }else { //遇到重复
    //                resultMap.clear();
                        begin = begin > (resultMap.get(key)+1) ? begin : (resultMap.get(key)+1);
                        result = result > (end-begin+1) ? result : (end-begin+1);
                        resultMap.put(key,i);
                    }
                }
    //            System.out.println(result);
                return result;
            }
        }
    }
    

      

  • 相关阅读:
    Xdebug
    单点登录
    一个Https网站发送Http的 ajax请求的解决方法
    js关闭微信浏览器页面
    标准的身份证验证(第18位校验码)
    Redis 更新(set) key值 会重置过期时间问题
    PHP 报错:Deprecated: Methods with the same name as their class will not be constructor...
    php防sql注入
    web开发原则
    fopen()函数
  • 原文地址:https://www.cnblogs.com/tonghao/p/9661144.html
Copyright © 2020-2023  润新知