zoukankan      html  css  js  c++  java
  • leetcode——76. 最小覆盖子串

    Map<Character,Integer> ori = new HashMap<>();
        Map<Character,Integer> cnt = new HashMap<>();  //这里用了两个哈希表
        public String minWindow(String s, String t) {
            int tLen = t.length();
            char[] c = t.toCharArray();
            for(int i = 0;i<tLen;i++){  //将t中的元素全部放入哈希表中
                ori.put(c[i],ori.getOrDefault(c[i],0)+1);  //这里是值得注意学习,自己不会灵活运用的地方
            }
            int l = 0,r = -1;
            int len = Integer.MAX_VALUE,ansL = -1,ansR = -1;
            int sLen = s.length();
            while (r<sLen){
                r++;
                if(r<sLen && ori.containsKey(s.charAt(r))){  //如果s[r]是有效字符,加入哈希表cnt中
                    cnt.put(s.charAt(r),cnt.getOrDefault(s.charAt(r),0)+1);
                }
                while (check() && l<=r){
                    if(r - l + 1<len){
                        len = r-l+1;
                        ansL = l;
                        ansR = r+1; 
                    }
                    if(ori.containsKey(s.charAt(l))){
                        cnt.put(s.charAt(l),cnt.getOrDefault(s.charAt(l),0)-1);
                    }
                    l++;
                }
            }
            return ansL == -1?"":s.substring(ansL,ansR);
        }
    
        private boolean check() {
            for (Map.Entry<Character, Integer> characterIntegerEntry : ori.entrySet()) {
                Map.Entry entry = characterIntegerEntry;
                Character key = (Character) entry.getKey();
                Integer val = (Integer) entry.getValue();
                if (cnt.getOrDefault(key, 0) < val) {
                    return false;
                }
            }
            return true;
        }

    我的前方是万里征途,星辰大海!!
  • 相关阅读:
    JavaSE 学习笔记04丨异常
    Codeforces Round #677 (Div. 3) E、G题解
    JavaSE 学习笔记03丨继承、接口、多态、内部类
    ftp通过了用户验证但是连接超时
    实型变量
    3dmax放样
    画直线算法
    VAE变分自动编码器
    RNN 、LSTM长短期记忆网络
    java比较字符串
  • 原文地址:https://www.cnblogs.com/taoyuxin/p/13591924.html
Copyright © 2011-2022 走看看