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.