En este artículo, aprenderemos cómo mover todos los caracteres especiales al final de la string.
Ejemplos:
Entrada: !@$%^&*AJAY
Salida: AJAY!@$%^&*
Entrada: Geeksf!@orgeek@s A#$c%o^computer s****cience p#o@rtal for@r ge %eks
Salida: Geeksforgeeks ¡Un portal de informática para geeks!@@#$%^****#@@%
Requisito previo: Expresiones regulares en Java
La idea es recorrer la string de entrada y mantener dos strings, una string que contiene caracteres normales (a, A, 1, ‘ ‘, etc.) y otra string que mantiene caracteres especiales (@, $, etc.) . Finalmente, concatene las dos strings y regrese.
Aquí está la implementación del enfoque anterior.
C++
// C++ program move all special char to the end of the string #include <bits/stdc++.h> using namespace std; // Function return a string with all special // chars to the end string moveAllSC(string str) { // Take length of string int len = str.length(); // traverse string string res1 = "", res2 = ""; for (int i = 0; i < len; i++) { char c = str.at(i); // check char at index i is a special char if (isalnum(c) || c == ' ') res1 += c; else res2 += c; } return res1 + res2; } // Driver code int main() { string str1("Geeksf!@orgeek@s A#$ c%o^mputer"); string str2(" s****cience p#o@rtal fo@r ge%eks"); string str = str1 + str2; cout << moveAllSC(str) << endl; return 0; } // This code is contributed by // sanjeev2552
Java
// Java program move all special char to the end of the string class GFG1 { // Function return a string with all special // chars to the end static String moveAllSC(String str) { // Take length of string int len = str.length(); // regular expression for check char is special // or not. String regx = "[a-zA-Z0-9\\s+]"; // traverse string String res1 = "", res2 = ""; for (int i = 0; i < len; i++) { char c = str.charAt(i); // check char at index i is a special char if (String.valueOf(c).matches(regx)) res1 = res1 + c; else res2 = res2 + c; } return res1 + res2; } public static void main(String args[]) { String str = "Geeksf!@orgeek@s A#$ c%o^mputer" + " s****cience p#o@rtal fo@r ge%eks"; System.out.println(moveAllSC(str)); } }
Python3
# Python3 program move all special char # to the end of the string # Function return a string with all # special chars to the end def moveAllSC(string): # Take length of string length = len(string) # Traverse string res1, res2 = "", "" for i in range(0, length): c = string[i] # check char at index i is a special char if c.isalnum() or c == " ": res1 = res1 + c else: res2 = res2 + c return res1 + res2 # Driver Code if __name__ == "__main__": string = "Geeksf!@orgeek@s A#$ c%o^mputer" \ +" s****cience p#o@rtal fo@r ge%eks" print(moveAllSC(string)) # This code is contributed by Rituraj Jain
C#
// C# program move all special char // to the end of the string using System; using System.Text.RegularExpressions; class GFG { // Function return a string with all // special chars to the end static String moveAllSC(String str) { // Take length of string int len = str.Length; // regular expression to check // char is special or not. var regx = new Regex("[a-zA-Z0-9\\s+]"); // traverse string String res1 = "", res2 = ""; for (int i = 0; i < len; i++) { char c = str[i]; // check char at index i is a special char if (regx.IsMatch(c.ToString())) res1 = res1 + c; else res2 = res2 + c; } return res1 + res2; } public static void Main(String []args) { String str = "Geeksf!@orgeek@s A#$ c%o^mputer" + " s****cience p#o@rtal fo@r ge%eks"; Console.WriteLine(moveAllSC(str)); } } // This code is contributed by PrinciRaj1992
Javascript
<script> // JavaScript program move all special char // to the end of the string // Function return a string with all // special chars to the end function moveAllSC(str) { // Take length of string var len = str.length; // regular expression to check // char is special or not. var regx = new RegExp("[a-zA-Z0-9\\s+]"); // traverse string var res1 = "", res2 = ""; for (var i = 0; i < len; i++) { var c = str[i].toString(); // check char at index i is a special char if (regx.test(c)) res1 = res1 + c; else res2 = res2 + c; } return res1 + res2; } var str = "Geeksf!@orgeek@s A#$ c%o^mputer" + " s****cience p#o@rtal fo@r ge%eks"; document.write(moveAllSC(str)); </script>
Geeksforgeeks A computer science portal for geeks!@@#$%^****#@@%
Complejidad de tiempo: O (N), ya que estamos usando un bucle para atravesar N veces. Donde N es la longitud de la string.
Espacio auxiliar: O(N), ya que estamos usando espacio adicional para la string res1 y res2. Donde N es la longitud de la string.
Publicación traducida automáticamente
Artículo escrito por 29AjayKumar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA