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)); } } }