Programa Java para mover todos los caracteres en mayúsculas hasta el final

Dada una string que contiene letras mayúsculas y minúsculas. La tarea es mover todos los caracteres en mayúscula al final de la String. Los caracteres en mayúsculas deben estar en el mismo orden que en la string original.

Input    : "heLLGFg"
Output   : "hegLLGF"

Input    : "Hello"
Output   : "elloH"

Aquí tenemos dos enfoques diferentes para llegar al problema, a saber, de la siguiente manera:

  1. Usando valores ASCII de los caracteres.
  2. Uso de estructuras de datos de cola

Enfoque 1: Uso de valores ASCII de los caracteres.

  • Iterar el carácter de la string uno por uno y verificar los valores ASCII del carácter respectivo de la string.
  • Para todas las letras mayúsculas, los valores ASCII se encuentran debajo de [65-90] valores de caracteres. Almacene los caracteres de estos valores ASCII en la variable String e imprima la string al final de la iteración.

Ejemplo:

Java

// Java Program to Move All Uppercase Characters to the End
 
// Importing input output classes
import java.io.*;
 
// Mai class
class GFG {
 
    // Method 1
    // To shift uppercase characters
    static void shiftuppercase(String m, int length)
    {
 
        // Taking an empty string
        String temp = "";
 
        for (int i = 0; i < length; ++i) {
 
            // Condition check
            // If the character is uppercase via
            // the ASCII values of the  character
            if (m.charAt(i) >= 65 && m.charAt(i) <= 90) {
                temp += m.charAt(i);
            }
 
            // The character is already lowercase
            else
                System.out.print(m.charAt(i));
        }
 
        // Now, Printing the uppercase string
        System.out.print(temp);
    }
 
    // Method 2
    // Main driver method
    public static void main(String[] args)
    {
        // Custom input string
        String m = "heLLGFg";
 
        // Computing the length of the string
        // using length() method
        int length = m.length();
 
        // Calling the method 1 over the custom string taken
        // above to move all uppercase char to the end
        shiftuppercase(m, length);
    }
}

Producción:

Complejidad de tiempo: O(n) //n es la longitud de la string.

Complejidad espacial: O(1)

Enfoque 2: uso de estructuras de datos de cola   

  • La estructura de datos de la cola implementa el concepto Primero en entrar, primero en salir. Usamos este concepto y almacenamos los caracteres en mayúsculas en la cola.
  • Imprime todos los caracteres excepto los caracteres en mayúsculas.
  • Después de la iteración, se eliminan todos los elementos de la cola.

Ejemplo: 

Java

// Java Program to Move All Uppercase Characters to the End
// Using Queue data structures
 
// Importing input output classes
import java.io.*;
// Importing utility classes
import java.util.*;
 
// Main class
class GFG {
 
    // Method 1
    // Main driver method
    static void shiftuppercase(String m, int length)
    {
        // Creating an object of Queue class of character
        // type
        Queue<Character> Q = new LinkedList<Character>();
 
        // Declaring an initializing to empty string
        String temp = "";
 
        for (int i = 0; i < length; ++i) {
 
            // Condition checkfor the uppercase characters
            // If uppercase use ASCII values of the
            // character
            if (m.charAt(i) >= 65 && m.charAt(i) <= 90) {
                Q.add(m.charAt(i));
            }
 
            // Character is lowercase
            else
 
                // Leave it asities on its index
                System.out.print(m.charAt(i));
        }
 
        // Now, printing the uppercase string till
        // there are elements in queue
        while (Q.size() != 0) {
 
            // Removing all the elements from the queue
            System.out.print(Q.peek());
 
            // Clear the queue
            Q.remove();
        }
    }
 
    // Method 2
    // main driver method
    public static void main(String[] args)
    {
 
        // Given input string
        String m = "heLLGFg";
 
        //  Computing the length of the string
        // using length() method
        int length = m.length();
 
        // Calling the
        shiftuppercase(m, length);
    }
}

Producción: 

Complejidad de tiempo : O(N) // donde N es la longitud de la string dada.

Espacio Auxiliar: O(n)

Publicación traducida automáticamente

Artículo escrito por zack_aayush 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 *