<awangdev>Letter Combinations of a Phone Number_1.java
public List<String> letterCombinations(String digits) {
        List<String> rst = new ArrayList<String>();
        if (digits == null || digits.length() == 0) {
            return rst;
        }
        HashMap<Character, String> map = new HashMap<Character, String>();
        map.put('2',"abc");
        map.put('3',"def");
        map.put('4',"ghi");
        map.put('5',"jkl");
        map.put('6',"mno");
        map.put('7',"pqrs");
        map.put('8',"tuv");
        map.put('9',"wxyz");
        Queue<String> queue = new LinkedList<String>();
        char c = digits.charAt(0);
        String s = map.get(c);
        for (int i = 0; i < s.length(); i++) {
            queue.offer(s.charAt(i) + "");
        }
        
        int size = 0;
        for (int i = 1; i < digits.length(); i++) {
            c = digits.charAt(i);
            s = map.get(c);
            size = queue.size();
            for (int j = 0; j < size; j++) {
                String str = queue.poll();
                for (int k = 0; k < s.length(); k++) {
                    queue.offer(str + s.charAt(k));
                }
            }
        }
        while (!queue.isEmpty()) {
            rst.add(queue.poll());
        }
        
        return rst;
    }
public List < String > var_1 ( String var_2 ) {
  List < String > var_5 = new ArrayList < String > ( ) ;
  if ( var_2 == null || var_2 . length ( ) == 0 ) {
    return var_5 ;
  }
  HashMap < Character , String > var_11 = new HashMap < Character , String > ( ) ;
  var_11 . put ( '2' , "abc" ) ;
  var_11 . put ( '3' , "def" ) ;
  var_11 . put ( '4' , "ghi" ) ;
  var_11 . put ( '5' , "jkl" ) ;
  var_11 . put ( '6' , "mno" ) ;
  var_11 . put ( '7' , "pqrs" ) ;
  var_11 . put ( '8' , "tuv" ) ;
  var_11 . put ( '9' , "wxyz" ) ;
  Queue < String > var_31 = new LinkedList < String > ( ) ;
  char var_33 = var_2 . charAt ( 0 ) ;
  String var_35 = var_11 . get ( var_33 ) ;
  for ( int var_36 = 0 ;
  var_36 < var_35 . length ( ) ;
  var_36 ++ ) {
    var_31 . offer ( var_35 . charAt ( var_36 ) + "" ) ;
  }
  int size = 0 ;
  for ( int var_36 = 1 ;
  var_36 < var_2 . length ( ) ;
  var_36 ++ ) {
    var_33 = var_2 . charAt ( var_36 ) ;
    var_35 = var_11 . get ( var_33 ) ;
    size = var_31 . size ( ) ;
    for ( int var_41 = 0 ;
    var_41 < size ;
    var_41 ++ ) {
      String var_43 = var_31 . poll ( ) ;
      for ( int var_44 = 0 ;
      var_44 < var_35 . length ( ) ;
      var_44 ++ ) {
        var_31 . offer ( var_43 + var_35 . charAt ( var_44 ) ) ;
      }
    }
  }
  while ( ! var_31 . isEmpty ( ) ) {
    var_5 . add ( var_31 . poll ( ) ) ;
  }
  return var_5 ;
}
