String Rotation using String Slicing in Python

In this tutorial, we are going to solve a task of rotating a string using the method of String slicing in Python. For doing this problem, first we need to know about a string in Python.

A string in Python is nothing but an array of characters enclosed within single or double quotes. Python supports in-built functions on strings which let us manipulate and modify them the way we want.

One such function is String Slicing.

Now, before diving deep, let’s proceed with the idea of String Slicing first !!!

What is String Slicing?

String Slicing in Python extracts individual characters or substrings,i.e a slice of characters. By doing this, we can use the range of characters we actually need from a given string. The syntax for string slicing is as follows :

                       string_name[start_index: end_index: steps]  

  • start_index :  the index starting from which the slicing will take place;inclusive
  • end_index :  the index where the slicing ends;not inclusive
  • steps : distance between two characters

Here’s two examples of String Slicing :

# python code to show string slicing
x = "India is my nation"

# printing substring starting from 2nd index to 13th index with a gap of 2 characters
print(x[2:13:2])

#printing substring from 12th index to the last
print(x[12:])


Output
dai yn
nation

How to Implement this Concept in the Given Task?

In this task, we would be doing left(anticlockwise) rotation and right(clockwise) rotation of the given string st of  size n by e elements where e<=n. Here we have taken e as 3 by default, if you wish you can take any other value instead.

The approach is as follows :

  1.  First, divide the given string into two portions into first and second for both left and right rotation.
  2. For left rotation, left first = st[0:e] and left second= st[e:] .
  3. For right rotation, right first = st[0 : len(st)-e] and right second = st[len(st)-e :].
  4.  Next, add  first and  second respectively.
  5. For left rotation, the first e elements are sliced and moved to the end of the string;hence we get an anticlockwise rotated string by e elements as output.
  6. For right rotation, we see the reverse; the last e elements are sliced and moved to the starting of the string;hence we get a clockwise rotated string by e elements as output.
# rot function for rotating the strings

def rot(st,e):  
  
    # string slicing into left first and second strings  and right first and second strings
    lf = st[0 : e] 
    ls = st[e :] 
    rf = st[0 : len(st)-e]  
    rs = st[len(st)-e : ]  
  
    # concatenation of the second and first strings
    print("Left Rotation : ", (ls + lf) ) 
    print("Right Rotation : ", (rs + rf) )  
    
# main code  
 
if __name__ == "__main__":  
    st = input('Enter the string: ')
    e=3
    rot(st,e)  

Output :

Enter the string: Codespeedy                                                                                                                  

Left Rotation :  espeedyCod                                                                                                                   

Right Rotation :  edyCodespe
Here, we took the input as “Codespeedy” and the output is clearly showing the left and right rotation.
Thank you for going through this article by sparing your valuable time. I sincerely hope the tutorial answered all your doubts on this topic. You may also check out the relatable articles underneath :

Leave a Reply

Your email address will not be published. Required fields are marked *