Sunday 1 April 2018

Python:Reverse a String using 5 Different Ways


Reverse String in Python: Using 5 Different Ways:
=====================================

Python string library does’nt support the in-built “reverse()” as done by other python containers like list, hence knowing other methods to reverse string can prove to be useful.

1.Using Loop:

# Python code to reverse a string
# Methon1: Using loop

def reverse(s):
  str = ""
  for i in s:
    str = i + str
  return str

s = "ManishBidsar"

print ("The original string  is : ",end="")
print (s)

print ("The reversed string(Methon1:Using loop) is : ",end="")
print (reverse(s))


Output:
======
Python 3.6.1 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
  
The original string  is : ManishBidsar
The reversed string(Methon-1:Using loop) is : rasdiBhsinaM



Explanation: In above code, we call a function to reverse a string, which iterates to every element and intelligently join each character in the beginning so as to obtain the reversed string.

2.Using Recursion:

# Python code to reverse a string
# Method2:Using recursion

def reverse(s):
    if len(s) == 0:
        return s
    else:
        return reverse(s[1:]) + s[0]

s = "MANISHBIDSAR"

print ("The original string  is : ",end="")
print (s)

print ("The reversed string(Method2:Using recursion) is : ",end="")
print (reverse(s))

Output:
======
Python 3.6.1 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
  
The original string  is : MANISHBIDSAR
The reversed string(Method2:Using recursion) is : RASDIBHSINAM


Explanation: In the above code, string is passed as an argument to a recursive function to reverse the string. In the function, the base condition is that if the length of the string is equal to 0, the string is returned. If not equal to 0, the reverse function is recursively called to slice the part of the string except the first character and concatenate the first character to the end of the sliced string.

3.Using Extended Slice Syntax:

# Python code to reverse a string
# Method3:Using extended slice syntax

# Function to reverse a string
def reverse(string):
    string = string[::-1]
    return string

s = "MANISHBIDSAR"

print ("The original string  is : ",end="")
print (s)

print ("The reversed string(Method3:Using extended slice syntax) is : ",end="")
print (reverse(s))

Output:
======

Python 3.6.1 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
  
The original string  is : MANISHBIDSAR
The reversed string(Method3:Using extended slice syntax) is : RASDIBHSINAM



Explanation: Extended slice offers to put a “step” field as [start,stop,step], and giving no field as start and stop indicates default to 0 and string length respectively and “-1” denotes starting from end and stop at the start, hence reversing string.


4.Using reversed:

# Python code to reverse a string
# Method4:Using reversed()

# Function to reverse a string
def reverse(string):
    string = "".join(reversed(string))
    return string

s = "ManishBidsar"

print ("The original string  is : ",end="")
print (s)

print ("The reversed string(Method4:Using reversed is : ",end="")
print (reverse(s))

Output:
======
Python 3.6.1 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
  
The original string  is : ManishBidsar
The reversed string(Method4:Using reversed is : rasdiBhsinaM

Explanation: The reversed() returns the reversed iterator of the given string and then its elements are joined empty string separated using join(). And reversed order string is formed.

  
5.Using Stack:
# Python code to reverse a string
# Method5:Using Stack

# Function to create an empty stack. It
# initializes size of stack as 0
def createStack():
    stack=[]
    return stack
 
# Function to determine the size of the stack
def size(stack):
    return len(stack)
 
# Stack is empty if the size is 0
def isEmpty(stack):
    if size(stack) == 0:
        return true
 
# Function to add an item to stack . It
# increases size by 1   
def push(stack,item):
    stack.append(item)
 
# Function to remove an item from stack.
# It decreases size by 1
def pop(stack):
    if isEmpty(stack): return
    return stack.pop()
 
# A stack based function to reverse a string
def reverse(string):
    n = len(string)
     
    # Create a empty stack
    stack = createStack()
 
    # Push all characters of string to stack
    for i in range(0,n,1):
        push(stack,string[i])
 
    # Making the string empty since all
    # characters are saved in stack   
    string=""
 
    # Pop all characters of string and put
    # them back to string
    for i in range(0,n,1):
        string+=pop(stack)
         
    return string

# Driver code
s = "ManishBidsar"
print ("The original string  is : ",end="")
print (s)
print ("The reversed string(Method5:Using Stack) is : ",end="")
print (reverse(s))

Output:
======
Python 3.6.1 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
  
The original string  is : ManishBidsar
The reversed string(Method5:Using Stack) is : rasdiBhsinaM
  

Explanation: An empty stack is created. One by one characters of string are pushed to stack.
One by one all characters from stack are popped, and put them back to string.

No comments:

Post a Comment

Note: only a member of this blog may post a comment.