Pregunta de entrevista 08.07. Permutaciones y combinaciones de cadenas sin duplicación.

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

Supongo que te gusta

Origin blog.csdn.net/TY_GYY/article/details/125070920
Recomendado
Clasificación