pregunta
Pregunta de entrevista 08.07.Permutaciones y combinaciones de cadenas no repetidas.Permutaciones
y combinaciones de cadenas no repetidas. Escriba un método que calcule todas las permutaciones de una cadena, donde cada carácter de la cadena sea diferente.
Ejemplo 1:
Entrada: S = "qwe"
Salida: ["qwe", "qew", "wqe", "weq", "ewq", "eqw"]
Ejemplo 2:
Entrada: S = "ab"
Salida: ["ab", "ba"]
Sugerencia:
Los caracteres son todas letras inglesas.
La longitud de la cadena está entre [1, 9].
Ideas para resolver problemas
Determine el orden de uno + otros elementos usando un pre para pasar los datos previamente determinados
código
class Solution:
def permutation(self, S: str) -> List[str]:
return self.doIt(list(S), '')
def doIt(self, s: List[str], pre: str) -> List[str]:
size = len(s)
if size == 1:
return [pre + s[0]]
ans = []
for i in range(size):
ans += self.doIt(s[1:], pre + s[0])
if i < size - 1:
s[0], s[i + 1] = s[i + 1], s[0]
return ans