LeetCode567

    技术2022-08-01  75

    class Solution { public boolean checkInclusion(String s1, String s2) { Map<Character,Integer> need = new HashMap<>(); Map<Character,Integer> window = new HashMap<>(); for(char c : s1.toCharArray()){ need.put(c,need.getOrDefault(c,0).intValue()+1); } int left = 0; int right = 0; int vavid = 0; while(right < s2.length()){ char c = s2.charAt(right); right++; if(need.containsKey(c)){ window.put(c,window.getOrDefault(c,0).intValue()+1); if(need.get(c).intValue()== window.get(c).intValue()){ vavid++; } } while(right-left>=s1.length()){ if(vavid==need.size()){ return true; } char d = s2.charAt(left); left++; if(need.containsKey(d)){ if(need.get(d)== window.get(d)){ vavid--; } window.put(d,window.get(d).intValue()-1); } } } return false; } }

     

    Processed: 0.010, SQL: 9