Programa Java para invertir una string usando Stack

El Stack es una estructura de datos lineal que sigue el principio LIFO (Last In First Out) , es decir, el último elemento insertado es el elemento que sale primero.

Acercarse:

  1. Empuje el carácter uno por uno en la pila de carácter de tipo de datos.
  2. Saque el personaje uno por uno de la pila hasta que la pila se vacíe.
  3. Agregue un elemento emergente a la array de caracteres.
  4. Convierte una array de caracteres en una string.
  5. Devuelve la string invertida.

A continuación se muestra la implementación del enfoque anterior.

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));
    }
}

Producción:

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

Complejidad de tiempo: O(n), donde n es un número de caracteres en la pila.

Espacio Auxiliar: O(n) para la pila.

Publicación traducida automáticamente

Artículo escrito por sumitsaini589 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *