Java Program to Reverse a String using Stack

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:
- Push the character one by one into the Stack of datatype character.
- Pop the character one by one from the Stack until the stack becomes empty.
- Add a popped element to the character array.
- Convert character array to string.
- 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.


