[Algo] 643. todas las permutaciones de subconjuntos

Dada una cadena sin caracteres duplicados, devolverá una lista con todas las permutaciones de la cadena y todos sus subconjuntos.

 

Ejemplos

Set = “abc”, todas las permutaciones son [ “”, “a”, “ab”, “abc”, “ac”, “acb”, “b”, “ba”, “bac”, “BC”, “ bca”,‘c’,‘CB’,‘cba’,‘ca’,‘cabina’].

Set = “”, todas las permutaciones son [ “”].

Set = null, todas las permutaciones son [].

 

pública  clase de soluciones {
   público List <String> allPermutationsOfSubsets (String) {
     // Escribir su solución aquí 
    List <String> list = nuevo ArrayList <> (); 
    Conjunto <carácter> charset = nueva HashSet <> (); 
    helper (set, charSet, 0, lista, nueva StringBuilder ());
    devolver la lista; 
  } 

  Privada  vacío ayudante (String str, Set <carácter> charSet, int num, List <String> resultado, StringBuilder sb) { 
    result.add (sb.ToString ()); 
    para (int i = 0; i <str.length (); i ++ ) {
       si (charSet.contains (str.charAt (i))) {
         continuar ; 
      } 
      Sb.append (str.charAt (i)); 
      charSet.add (str.charAt (i)); 
      helper (str, charSet, num + 1 , resultado, sb); 
      sb.deleteCharAt (sb.length () - 1 ); 
      charSet.remove (str.charAt (i)); 
    } 
  } 
}

 

Supongo que te gusta

Origin www.cnblogs.com/xuanlu/p/12610087.html
Recomendado
Clasificación