Dada una string de tamaño n, escriba funciones para realizar las siguientes operaciones en la string.
- Gire a la izquierda (o en sentido contrario a las agujas del reloj) la string dada por d elementos (donde d <= n).
- 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,
- 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 : ].
- 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)
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