Open In App

Java Program to Reverse a String using Stack

Last Updated : 21 Oct, 2020
Suggest changes
Share
Like Article
Like
Report

The Stack is a linear data structure that follows the LIFO(Last In First Out) principle, i.e, the element inserted at the last is the element to come out first.

Approach:

  1. Push the character one by one into the Stack of datatype character.
  2. Pop the character one by one from the Stack until the stack becomes empty.
  3. Add a popped element to the character array.
  4. Convert character array to string.
  5. Return reversed string.

Below is the implementation of the above approach.

Java
// Java Program to Reverse a String using Stack import java.io.*; import java.util.*; class GFG {  public static String ReverseString(String str)  {  char[] reverseString = new char[str.length()];  // Declare a stack of type Character  Stack<Character> stack = new Stack<Character>();  // Traverse the String and push the character one by  // one into the Stack  for (int i = 0; i < str.length(); i++) {  // push the character into the Stack  stack.push(str.charAt(i));  }  // Now Pop the Characters from the stack until it  // becomes empty  int i = 0;  while (!stack.isEmpty()) { // popping element until  // stack become empty  // get the character from the top of the stack  reverseString[i++] = stack.pop();  }  // return string object  return new String(reverseString);  }  // Driver code  public static void main(String[] args)  {  String str1 = "GeeksForGeeks";    // call the function  System.out.println(str1 + " <- Reverse -> "  + ReverseString(str1));    String str2 = "Hello World";    // call the function  System.out.println(str2 + " <- Reverse -> "  + ReverseString(str2));  } } 

Output:

GeeksForGeeks <- Reverse -> skeeGroFskeeG Hello World <- Reverse -> dlroW olleH 

Time Complexity: O(n), where n is a number of characters in the stack.

Auxiliary Space: O(n) for the stack.


Next Article

Similar Reads

Article Tags :
Practice Tags :