Skip to content
Related Articles

Related Articles

String slicing in Python to rotate a string

Improve Article
Save Article
  • Difficulty Level : Easy
  • Last Updated : 25 Jul, 2022
Improve Article
Save Article

Given a string of size n, write functions to perform following operations on string.

  1. Left (Or anticlockwise) rotate the given string by d elements (where d <= n).
  2. 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,

  1. 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 : ].
  2. Now concatenate these two parts second + first accordingly.

Implementation:

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)

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 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)

Output

Left Rotation :  ksGeeksforGee
Right Rotation :  ksGeeksforGee

My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!