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_0 ( String var_1 , String var_2 ) {
    List < Integer > var_3 = new ArrayList < > ( ) ;
    if ( var_1 == null || var_1 . length ( ) == 0 || var_1 . length ( ) < var_2 . length ( ) ) return var_3 ;
    int var_4 = var_1 . length ( ) , var_5 = var_2 . length ( ) ;
    int [ ] var_6 = new int [ 256 ] ;
    for ( char var_7 : var_2 . toCharArray ( ) ) var_6 [ var_7 ] ++ ;
    int var_8 = 0 , var_9 = 0 ;
    int var_10 = var_5 ;
    while ( var_9 < var_4 ) {
      char var_7 = var_1 . charAt ( var_9 ++ ) ;
      if ( var_6 [ var_7 ] > 0 ) var_10 -- ;
      var_6 [ var_7 ] -- ;
      if ( var_10 == 0 ) var_3 . add ( var_8 ) ;
      if ( var_9 - var_8 == var_5 ) {
        var_7 = var_1 . charAt ( var_8 ++ ) ;
        if ( var_6 [ var_7 ] >= 0 ) var_10 ++ ;
        var_6 [ var_7 ] ++ ;
      }
    }
    return var_3 ;
  }
  