Strings are basically sequence of characters. Python doesn’t support in-built string functions such as reverse() to reverse a string.

The following are the ways to reverse a string in Python:
- By using a
for loop
- By using a
while loop
- By using a
Slicing
- By using
join()
method - By using
Recursion
- By using
List
reverse()
method - By using
stack
Method 1: Reverse a string using for loop
def rev_string_loop(s):
res = ''
for x in s:
res = x + res
return res
str = 'STRING'
print('Reversed String =', rev_string_loop(str))
Output:
Reversed String = GNIRTS
Method 2: Reverse a string using while loop
def rev_string_loop(x):
res = ''
length = len(x) - 1
while length >= 0:
res = res + x[length]
length = length - 1
return res
str = 'STRING'
print('Reversed String =', rev_string_loop(str))
Output:
Reversed String = GNIRTS
Method 3: Reverse a string using Slicing
input="STRING"
length=len(input)
res=input[length::-1]
print (res)
Output:
GNIRTS
Method 4: Reverse a string using join() method
input = 'STRING'
result=''.join(reversed(input))
print(result)
Output:
GNIRTS
Method 5: Reverse a string using Recursion
def rev_string(x):
if len(x) == 0:
return x
else:
return rev_string(x[1:]) + x[0]
x = "STRING"
print ("Original string: ")
print (x)
print ("Reversed string: ")
print (rev_string(x))
Output:
Original string:
STRING
Reversed string:
GNIRTS
Method 6: Reverse a string using List reverse() method
input_list = [1, 2, 3, 4, 5]
input_list.reverse()
print(input_list)
Output:
[5, 4, 3, 2, 1]
Method 7: Reverse a string using stack
def create():
stack1=[]
return stack1
def size(stack1):
return len(stack1)
def isEmpty(stack1):
if size(stack1) == 0:
return true
def push(stack1,element):
stack1.append(element)
def pop(stack1):
if isEmpty(stack1): return
return stack1.pop()
def rev_string(input):
x = len(input)
stack1 = create()
for i in range(0,x,1):
push(stack1,input[i])
input=""
for i in range(0,x,1):
input+=pop(stack1)
return input
n = "STRING"
print ("Original string: ")
print (n)
print ("Reversed string: ")
print (rev_string(n))
Output:
Original string:
STRING
Reversed string:
GNIRTS
References
- Python Reverse String
- Python Docs