Dada la string str , la tarea es invertir la string considerando cada palabra de la string str como una sola unidad.
Ejemplos:
Entrada: str = “código de práctica de prueba de geeks”
Salida: código de práctica de prueba de geeks
Explicación:
Las palabras en la string dada son [“geeks”, “quiz”, “practice”, “code”].
Por lo tanto, después de invertir el orden de las palabras, el resultado requerido es » geeks de prueba de práctica de código».Entrada : str = «ser bueno en la codificación necesita mucha práctica»
Salida : la práctica de un lote necesita la codificación en la buena obtención
Enfoque de inversión in situ: Consulte el artículo Invertir palabras en una string determinada para la inversión in situ de palabras seguida de una inversión de toda la string.
Complejidad temporal: O(N)
Espacio auxiliar: O(1)
Enfoque basado en Stack : En este artículo, se discutiráel enfoque para resolver el problema usando Stack . La idea aquí es insertar todas las palabras de str en la pila y luego imprimir todos los elementos de la pila. Siga los pasos a continuación para resolver el problema:
- Cree una pila para almacenar cada palabra de la string str .
- Itere sobre la string str y separe cada palabra de str con un delimitador de espacio.
- Empuje todas las palabras de str en la pila.
- Imprime todos los elementos de la pila uno por uno.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ Program to implement // the above approach #include <bits/stdc++.h> using namespace std; // Function to reverse the words // of a given string void printRev(string str) { // Stack to store each // word of the string stack<string> st; // Store the whole string // in string stream stringstream ss(str); string temp; while (getline(ss, temp, ' ')) { // Push each word of the // string into the stack st.push(temp); } // Print the string in reverse // order of the words while (!st.empty()) { cout << st.top() << " "; st.pop(); } } // Driver Code int main() { string str; str = "geeks quiz practice code"; printRev(str); return 0; }
Java
// Java Program to implement // the above approach import java.util.*; class GFG{ // Function to reverse the words // of a given String static void printRev(String str) { // Stack to store each // word of the String Stack<String> st = new Stack<String>(); // Store the whole String // in String stream String[] ss = str.split(" "); for (String temp : ss) { // Push each word of the // String into the stack st.add(temp); } // Print the String in reverse // order of the words while (!st.isEmpty()) { System.out.print(st.peek() + " "); st.pop(); } } // Driver Code public static void main(String[] args) { String str; str = "geeks quiz practice code"; printRev(str); } } // This code is contributed by Rajput-Ji
Python3
# Python3 program to implement # the above approach # Function to reverse the words # of a given string def printRev(strr): # Stack to store each # word of the string strr = strr.split(" ") st = [] # Store the whole string # in stream for i in strr: # Push each word of the # into the stack st.append(i) # Print the in reverse # order of the words while len(st) > 0: print(st[-1], end = " ") del st[-1] # Driver Code if __name__ == '__main__': strr = "geeks quiz practice code" printRev(strr) # This code is contributed by mohit kumar 29
C#
// C# program to implement // the above approach using System; using System.Collections; class GFG{ // Function to reverse the words // of a given String static void printRev(string str) { // Stack to store each // word of the String Stack st = new Stack(); String[] separator = {" "}; // Store the whole String // in String stream string[] ss = str.Split(separator, int.MaxValue, StringSplitOptions.RemoveEmptyEntries); foreach(string temp in ss) { // Push each word of the // String into the stack st.Push(temp); } // Print the String in reverse // order of the words while (st.Count > 0) { Console.Write(st.Peek() + " "); st.Pop(); } } // Driver Code public static void Main(string[] args) { string str; str = "geeks quiz practice code"; printRev(str); } } // This code is contributed by rutvik_56
Javascript
<script> // Javascript Program to implement // the above approach // Function to reverse the words // of a given String function printRev(str) { // Stack to store each // word of the String let st = []; // Store the whole String // in String stream let ss = str.split(" "); for (let temp=0;temp< ss.length;temp++) { // Push each word of the // String into the stack st.push(ss[temp]); } // Print the String in reverse // order of the words while (st.length!=0) { document.write(st.pop() + " "); } } // Driver Code let str; str = "geeks quiz practice code"; printRev(str); // This code is contributed by unknown2108 </script>
code practice quiz geeks
Complejidad de tiempo: O(N), donde N denota la longitud de la string.
Espacio Auxiliar: O(N)
Método n.º 2: uso de funciones Python integradas
- Como todas las palabras en una oración están separadas por espacios.
- Tenemos que dividir la oración por espacios usando split().
- Dividimos todas las palabras por espacios y las almacenamos en una lista.
- Invierta esta lista e imprímala.
C++
// C++ program to implement // the above approach #include <bits/stdc++.h> using namespace std; // Function to reverse the words // of a given string void printRev(string lis[]) { // reverse the list reverse(lis, lis + 4); for(int i = 0; i < 4; i++) { cout << lis[i] << " "; } } int main() { string strr[] = {"geeks", "quiz", "practice", "code"}; printRev(strr); return 0; } // This code is contributed by divyeshrabadiya07.
Java
// Java program to implement // the above approach import java.util.*; class GFG{ // Function to reverse the words // of a given string static void printRev(String string) { // Split by space and converting // string to list String[] lis = string.split(" ", 0); // Reverse the list Collections.reverse(Arrays.asList(lis)); // Printing the list for(String li : lis) { System.out.print(li + " "); } } // Driver code public static void main(String[] args) { String strr = "geeks quiz practice code"; printRev(strr); } } // This code is contributed by decode2207
Python3
# Python3 program to implement # the above approach # Function to reverse the words # of a given string def printRev(string): # split by space and converting # string to list lis = list(string.split()) # reverse the list lis.reverse() # printing the list print(*lis) # Driver Code if __name__ == '__main__': strr = "geeks quiz practice code" printRev(strr) # This code is contributed by vikkycirus
C#
// C# program to implement // the above approach using System; class GFG { // Function to reverse the words // of a given string static void printRev(string String) { // split by space and converting // string to list string[] lis = String.Split(' '); // reverse the list Array.Reverse(lis); // printing the list foreach(string li in lis) { Console.Write(li + " "); } } static void Main() { string strr = "geeks quiz practice code"; printRev(strr); } } // This code is contributed by rameshtravel07.
Javascript
<script> // javascript program to implement // the above approach // Function to reverse the words // of a given string function printRev(string){ // split by space and converting // string to list var lis = string.split(' '); console.log(lis); // reverse the list lis.reverse(); console.log(lis); // printing the list document.write(lis.join(' ')); } // Driver Code var strr = "geeks quiz practice code" printRev(strr) </script>
code practice quiz geeks
Complejidad de tiempo : O(n), n es el número de strings.
Espacio Auxiliar : O(1)
Publicación traducida automáticamente
Artículo escrito por anantrungta1999 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA