String slicing in Python to rotate a string
Given a string of size n, write functions to perform following operations on string.
- Left (Or anticlockwise) rotate the given string by d elements (where d <= n).
- Right (Or clockwise) rotate the given string by d elements (where d <= n).
Examples:
Input : s = "GeeksforGeeks"
d = 2
Output : Left Rotation : "eksforGeeksGe"
Right Rotation : "ksGeeksforGee"
Input : s = "qwertyu"
d = 2
Output : Left rotation : "ertyuqw"
Right rotation : "yuqwert"Method 1: We have existing solution for this problem please refer Left Rotation and Right Rotation of a String link. We will solve this problem quickly in python using String Slicing. Approach is very simple,
- Separate string in two parts first & second, for Left rotation Lfirst = str[0 : d] and Lsecond = str[d :]. For Right rotation Rfirst = str[0 : len(str)-d] and Rsecond = str[len(str)-d : ].
- Now concatenate these two parts second + first accordingly.
Implementation:
Python3
# Function to rotate string left and right by d lengthdef 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 programif __name__ == "__main__": input = 'GeeksforGeeks' d=2 rotate(input,d) |
Output:
Left Rotation : eksforGeeksGe Right Rotation : ksGeeksforGee
Method 2: We use extended string to rotate the string. We will solve this problem quickly in python by slicing extended string. Approach is very simple,
Use extended string Extend_str, for Left rotation Lfirst = Extended_str[n : l1+n] . For Right rotation Rfirst = str[l1-n : l2-n].
Now print this string.
Implementation:
Python3
# Function to rotate string left and right by d lengthdef 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 programif __name__ == "__main__": input = 'GeeksforGeeks' d=2 rotate(input,d) |
Output
Left Rotation : ksGeeksforGee Right Rotation : ksGeeksforGee


