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:
- Usando valores ASCII de los caracteres.
- 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