in

Cadena inversa en Python (5 formas diferentes)

gfg 200x200 min

La biblioteca de cadenas de Python no admite el «marcha atrás()”Como lo hacen otros contenedores de Python como list, por lo tanto, conocer otros métodos para invertir la cadena puede resultar útil. Este artículo analiza varias formas de lograrlo.

Usando bucle

 

def reverse(s):

  str = ""

  for i in s:

    str = i + str

  return str

 

s = "Geeksforgeeks"

 

print ("The original string  is : ",end="")

print (s)

 

print ("The reversed string(using loops) is : ",end="")

print (reverse(s))

Producción:

The original string  is : Geeksforgeeks
The reversed string(using loops) is : skeegrofskeeG

Explicacion: En el código anterior, llamamos a una función para revertir una cadena, que itera en cada elemento e inteligentemente únete a cada personaje al principio para obtener la cuerda invertida.

Usando recursividad

 

def reverse(s):

    if len(s) == 0:

        return s

    else:

        return reverso (s[1:]) + s[0]

 

s = "Geeksforgeeks"

 

print ("The original string  is : ",end="")

print (s)

 

print ("The reversed string(using recursion) is : ",end="")

print (reverse(s))

Producción:

The original string  is : Geeksforgeeks
The reversed string(using recursion) is : skeegrofskeeG

Explicacion: En el código anterior, la cadena se pasa como argumento a una función recursiva para invertir la cadena. En la función, la condición básica es que si la longitud de la cadena es igual a 0, se devuelve la cadena. Si no es igual a 0, la función inversa se llama de forma recursiva para cortar la parte de la cadena excepto el primer carácter y concatenar el primer carácter al final de la cadena cortada.

Usando pila

 

def createStack():

    stack=[]

    return stack

  

def size(stack):

    return len(stack)

  

def isEmpty(stack):

    if size(stack) == 0:

        return true

  

def push(stack,item):

    stack.append(item)

  

def pop(stack):

    if isEmpty(stack): return

    return stack.pop()

  

def reverse(string):

    n = len(string)

      

    

    stack = createStack()

  

    

    for i in range(0,n,1):

        push(stack,string[i])

  

    

    

    string=""

  

    

    

    for i in range(0,n,1):

        string+=pop(stack)

          

    return string

 

s = "Geeksforgeeks"

print ("The original string  is : ",end="")

print (s)

print ("The reversed string(using stack) is : ",end="")

print (reverse(s))

Producción:

The original string  is : Geeksforgeeks
The reversed string(using stack) is : skeegrofskeeG

Explicacion: Se crea una pila vacía. Uno por uno, los caracteres de la cadena se empujan a la pila.
Uno por uno, se extraen todos los caracteres de la pila y se vuelven a colocar en la cadena.

Usando la sintaxis de segmento extendida

 

def reverse(string):

    string = cuerda[::-1]

    return string

 

s = "Geeksforgeeks"

 

print ("The original string  is : ",end="")

print (s)

 

print ("The reversed string(using extended slice syntax) is : ",end="")

print (reverse(s))

Producción:

The original string  is : Geeksforgeeks
The reversed string(using extended slice syntax) is : skeegrofskeeG

Explicacion: El segmento extendido ofrece poner un campo de «paso» como [start,stop,step], y no dar ningún campo como inicio y fin indica que el valor predeterminado es 0 y la longitud de la cadena respectivamente y «-1”Denota comenzar desde el final y detenerse al comienzo, por lo tanto, cadena de inversión.

Usando invertido

 

def reverse(string):

    string = "".join(reversed(string))

    return string

 

s = "Geeksforgeeks"

 

print ("The original string  is : ",end="")

print (s)

 

print ("The reversed string(using reversed) is : ",end="")

print (reverse(s))

Producción:

The original string  is : Geeksforgeeks
The reversed string(using reversed) is : skeegrofskeeG

Explicacion: El inverted () devuelve el iterador invertido de la cadena dada y luego sus elementos se unen a una cadena vacía separados usando join (). Y se forma una cadena de orden inverso.

Este artículo es una contribución de Manjeet Singh. Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando contrib.geeksforgeeks.org o envíe su artículo por correo electrónico a contrib@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema discutido anteriormente.

¡Atención geek! Fortalece tus cimientos con el Fundación de programación de Python Curso y aprende los conceptos básicos.

Para empezar, los preparativos de su entrevista Mejore sus conceptos de estructuras de datos con el Python DS Curso. Y para comenzar con su viaje de aprendizaje automático, únase al Aprendizaje automático – Curso de nivel básico

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

apple touch icon@2

autenticación – ¿Cómo puedo «iniciar sesión» en git?

Matrimonio vs boda: diferencia y comparación