comefrom: <gouthampradhan>greedy_PartitionLabels_1.java
code: public List<Integer> partitionLabels(String S) {
      Map<Character, Integer> map = new HashMap<>();
      for (int i = 0; i < S.length(); i++) {
        char c = S.charAt(i);
        map.putIfAbsent(c, i);
        map.remove(c);
        map.put(c, i);
      }
      char start = S.charAt(0);
      int currMax = map.get(start);
      int startIndex = 0;
      List<Integer> list = new ArrayList<>();
      while (true) {
        int i = startIndex;
        for (; i <= currMax; i++) {
          char c = S.charAt(i);
          int pos = map.get(c);
          currMax = Math.max(currMax, pos);
        }
        if (i > currMax && i < S.length()) {
          list.add(i - startIndex);
          startIndex = i;
          currMax = map.get(S.charAt(i));
        } else {
          if (i == S.length()) {
            list.add(i - startIndex);
            break;
          }
        }
      }
      return list;
    }
masked: public List < Integer > var_0 ( String var_1 ) {
    Map < Character , Integer > var_2 = new HashMap < > ( ) ;
    for ( int var_3 = 0 ;
    var_3 < var_1 . length ( ) ;
    var_3 ++ ) {
      char var_4 = var_1 . charAt ( var_3 ) ;
      var_2 . putIfAbsent ( var_4 , var_3 ) ;
      var_2 . remove ( var_4 ) ;
      var_2 . put ( var_4 , var_3 ) ;
    }
    char var_5 = var_1 . charAt ( 0 ) ;
    int var_6 = var_2 . get ( var_5 ) ;
    int var_7 = 0 ;
    List < Integer > var_8 = new ArrayList < > ( ) ;
    while ( true ) {
      int var_3 = var_7 ;
      for ( ;
      var_3 <= var_6 ;
      var_3 ++ ) {
        char var_4 = var_1 . charAt ( var_3 ) ;
        int var_9 = var_2 . get ( var_4 ) ;
        var_6 = Math . max ( var_6 , var_9 ) ;
      }
      if ( var_3 > var_6 && var_3 < var_1 . length ( ) ) {
        var_8 . add ( var_3 - var_7 ) ;
        var_7 = var_3 ;
        var_6 = var_2 . get ( var_1 . charAt ( var_3 ) ) ;
      }
      else {
        if ( var_3 == var_1 . length ( ) ) {
          var_8 . add ( var_3 - var_7 ) ;
          break ;
        }
      }
    }
    return var_8 ;
  }
  