comefrom: <awangdev>438. Find All Anagrams in a String_1.java
code: public List<Integer> findAnagrams(String s, String p) {
          List<Integer> rst = new ArrayList<>();
          if (s == null || s.length() == 0 || s.length() < p.length()) return rst;
          
          int n = s.length(), m = p.length();
  
          int[] hash = new int[256]; 
          for (char c : p.toCharArray()) hash[c]++;
          
          int left = 0, right = 0;
          int count = m; 
          
          while (right < n) {
              char c = s.charAt(right++);
              if (hash[c] > 0) count--;
              hash[c]--; 
              
              if (count == 0) rst.add(left);
              
              if (right - left == m) {
                  c = s.charAt(left++); 
                  if (hash[c] >= 0) count++; 
                  hash[c]++;
              }
          }
          return rst;
      }
masked: public List < Integer > var_1 ( String var_3 , String var_4 ) {
    List < Integer > var_7 = new ArrayList < > ( ) ;
    if ( var_3 == null || var_3 . length ( ) == 0 || var_3 . length ( ) < var_4 . length ( ) ) return var_7 ;
    int var_11 = var_3 . length ( ) , var_12 = var_4 . length ( ) ;
    int [ ] var_14 = new int [ 256 ] ;
    for ( char var_16 : var_4 . toCharArray ( ) ) var_14 [ var_16 ] ++ ;
    int var_17 = 0 , var_18 = 0 ;
    int var_19 = var_12 ;
    while ( var_18 < var_11 ) {
      char var_16 = var_3 . charAt ( var_18 ++ ) ;
      if ( var_14 [ var_16 ] > 0 ) var_19 -- ;
      var_14 [ var_16 ] -- ;
      if ( var_19 == 0 ) var_7 . add ( var_17 ) ;
      if ( var_18 - var_17 == var_12 ) {
        var_16 = var_3 . charAt ( var_17 ++ ) ;
        if ( var_14 [ var_16 ] >= 0 ) var_19 ++ ;
        var_14 [ var_16 ] ++ ;
      }
    }
    return var_7 ;
  }
  