# String slicing in Python to rotate a string

• Difficulty Level : Easy
• Last Updated : 25 Jul, 2022

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