Corte de strings en Python para rotar una string

Dada una string de tamaño n, escriba funciones para realizar las siguientes operaciones en la string.

  1. Gire a la izquierda (o en sentido contrario a las agujas del reloj) la string dada por d elementos (donde d <= n).
  2. A la derecha (o en el sentido de las agujas del reloj) gire la string dada por d elementos (donde d <= n).

Ejemplos:

Input : s = "GeeksforGeeks"
        d = 2
Output : Left Rotation  : "eksforGeeksGe" 
         Right Rotation : "ksGeeksforGee"  


Input : s = "qwertyu" 
        d = 2
Output : Left rotation : "ertyuqw"
         Right rotation : "yuqwert"

Método 1: Tenemos una solución existente para este problema, consulte Rotación a la izquierda y Rotación a la derecha de un enlace de string. Resolveremos este problema rápidamente en python usando String Slicing . El enfoque es muy simple,

  1. Separe la string en dos partes , primero y segundo , para la rotación a la izquierda Lprimero = str[0: d] y Lsegundo = str[d:]. Para la rotación a la derecha Rfirst = str[0 : len(str)-d] y Rsecond = str[len(str)-d : ].
  2. Ahora concatene estas dos partes segundo + primero en consecuencia.

Implementación:

Python3

# Function to rotate string left and right by d length
 
def rotate(input,d):
 
    # slice string in two parts for left and right
    Lfirst = input[0 : d]
    Lsecond = input[d :]
    Rfirst = input[0 : len(input)-d]
    Rsecond = input[len(input)-d : ]
 
    # now concatenate two parts together
    print ("Left Rotation : ", (Lsecond + Lfirst) )
    print ("Right Rotation : ", (Rsecond + Rfirst))
 
# Driver program
if __name__ == "__main__":
    input = 'GeeksforGeeks'
    d=2
    rotate(input,d)

Producción:

Left Rotation  : eksforGeeksGe 
Right Rotation : ksGeeksforGee

Método 2: usamos una string extendida para rotar la string. Resolveremos este problema rápidamente en python cortando la string extendida. El enfoque es muy simple,

Use la string extendida Extend_str, para la rotación a la izquierda Lfirst = Extended_str[n : l1+n] . Para rotación a la derecha Rfirst = str[l1-n : l2-n].
Ahora imprime esta string. 

Implementación:

Python3

# Function to rotate string left and right by d length
 
def rotate(str1,n):
 
    # Create the extended string and index of for rotation
    temp = str1 + str1
    l1 = len(str1)
    l2 = len(temp)
    Lfirst = temp[n  : l1+n]
    Lfirst = temp[l1-n : l2-n]
 
    # now printing the string
    print ("Left Rotation : ", Lfirst)
    print ("Right Rotation : ", Lfirst )
 
# Driver program
if __name__ == "__main__":
    input = 'GeeksforGeeks'
    d=2
    rotate(input,d)
Producción

Left Rotation :  ksGeeksforGee
Right Rotation :  ksGeeksforGee

Publicación traducida automáticamente

Artículo escrito por Shashank Mishra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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