Dada una string S que consta de enteros separados por espacios, la tarea es extraer el número K presente en la string.
Nota: La string contiene al menos K números.
Ejemplos:
Entrada: S = “12 13 15”, K= 3
Salida: 15
Explicación: El tercer entero en la string anterior es 15.Entrada: S = “10 20 30 40”, K = 2
Salida: 20
Explicación: El segundo entero en la string anterior es 20.
Enfoque ingenuo: el enfoque más simple para resolver el problema es atravesar la string y llevar la cuenta de los espacios encontrados. Una vez que encuentre K – 1 espacios, escriba el número hasta el siguiente espacio como la respuesta requerida.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ Program for the above approach #include <iostream> using namespace std; // Function to print kth integer // in a given string void print_kth_string(string s, int K) { // Size of the string int N = s.length(); // Pointer for iteration int i; for (i = 0; i < N; i++) { // If space char found // decrement K if (s[i] == ' ') K--; // If K becomes 1, the next // string is the required one if (K == 1) break; } // Print the required number while (i++ < N && s[i] != ' ') cout << s[i]; } // Driver Code int main() { // Given string string s("10 20 30 40"); // Given K int K = 4; // Function call print_kth_string(s, K); }
Java
// Java program for the above approach import java.io.*; class GFG{ // Function to print kth integer // in a given string static void print_kth_string(String s, int K) { // Size of the string int N = s.length(); // Pointer for iteration int i; for(i = 0; i < N; i++) { // If space char found // decrement K if (s.charAt(i) == ' ') K--; // If K becomes 1, the next // string is the required one if (K == 1) break; } // Print the required number while (i++ < N - 1 && s.charAt(i) != ' ') System.out.print(s.charAt(i)); } // Driver Code public static void main (String[] args) { // Given string String s = "10 20 30 40"; // Given K int K = 4; // Function call print_kth_string(s, K); } } // This code is contributed by sanjoy_62
Python3
# Python3 program for # the above approach # Function to print kth integer # in a given string def print_kth_string(s, K): # Size of the string N = len(s); for i in range(0, N, 1): # If space char found # decrement K if (s[i] == ' '): K -= 1; # If K becomes 1, the next # string is the required one if (K == 1): break; # Print required number while (i < N): if(s[i] != ' '): print(s[i], end = ""); i += 1; # Driver Code if __name__ == '__main__': # Given string s = "10 20 30 40"; # Given K K = 4; # Function call print_kth_string(s, K); # This code is contributed by Rajput-Ji
C#
// C# program for the above approach using System; class GFG{ // Function to print kth integer // in a given string static void print_kth_string(string s, int K) { // Size of the string int N = s.Length; // Pointer for iteration int i; for(i = 0; i < N; i++) { // If space char found // decrement K if (s[i] == ' ') K--; // If K becomes 1, the next // string is the required one if (K == 1) break; } // Print the required number while (i++ < N - 1 && s[i] != ' ') Console.Write(s[i]); } // Driver Code public static void Main () { // Given string string s = "10 20 30 40"; // Given K int K = 4; // Function call print_kth_string(s, K); } } // This code is contributed by sanjoy_62
Javascript
<script> // javascript program for the above approach // Function to print kth integer // in a given string function print_kth_string( s , K) { // Size of the string var N = s.length; // Pointer for iteration var i; for (i = 0; i < N; i++) { // If space char found // decrement K if (s.charAt(i) == ' ') K--; // If K becomes 1, the next // string is the required one if (K == 1) break; } // Print the required number while (i++ < N - 1 && s.charAt(i) != ' ') document.write(s.charAt(i)); } // Driver Code // Given string var s = "10 20 30 40"; // Given K var K = 4; // Function call print_kth_string(s, K); // This code is contributed by umadevi9616 </script>
40
Complejidad de tiempo: O(N), donde N es la longitud de la string.
Espacio Auxiliar: O(1)
Enfoque de Stringstream : La idea es usar stringstream en C++ que asocia un objeto de string con una secuencia y nos permite leer la string como si fuera una secuencia (como cin).
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program for the above approach #include <bits/stdc++.h> using namespace std; // Function to print Kth integer // from a given string void print_kth_string(string str, int K) { // Split input into words // using stringstream stringstream iss(str); // Stores individual words string kth; // Extract words from stream while (iss >> kth && K) { K--; // If kth position // is reached if (K == 0) { cout << kth; break; } } } // Driver Code int main() { // Given string string s("10 20 30 40"); // Given K int K = 4; // Function call print_kth_string(s, K); }
Java
// Java program for // the above approach import java.util.*; class GFG{ // Function to print Kth integer // from a given String static void print_kth_String(String str, int K) { // Split input into words // using split String[] iss = str.split(" "); K--; System.out.print(iss[K]); } // Driver Code public static void main(String[] args) { // Given String String s = ("10 20 30 40"); // Given K int K = 4; // Function call print_kth_String(s, K); } } // This code is contributed by Rajput-Ji
Python3
# Python3 program for the above approach # Function to print Kth integer # from a given string def print_kth_string(str1, K): # Split input into words # using stringstream st = str1.split(" ") # Stores individual words print(st[K - 1]) # Driver Code if __name__ == '__main__': # Given string s = "10 20 30 40" # Given K K = 4 # Function call print_kth_string(s, K) # This code is contributed by SURENDRA_GANGWAR
C#
// C# program for // the above approach using System; class GFG{ // Function to print Kth integer // from a given String static void print_kth_String(String str, int K) { // Split input into words // using split String[] iss = str.Split(' '); K--; Console.Write(iss[K]); } // Driver Code public static void Main(String[] args) { // Given String String s = ("10 20 30 40"); // Given K int K = 4; // Function call print_kth_String(s, K); } } // This code is contributed by Rajput-Ji
40
Complejidad de tiempo: O(N), donde N es la longitud de la string.
Espacio Auxiliar: O(1)
Enfoque basado en funciones de string integradas: la idea es utilizar la función strtok() para extraer la string en la tecla. Use la función c_str() para obtener la referencia del puntero de caracteres de una array de caracteres.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program of the above approach #include <cstring> #include <iostream> using namespace std; // Function to extract integer at key // position in the given string void print_kth_string(string str, int K) { // strtok(): Extracts the number at key // c_str(): Type cast string to char* char* s = strtok((char*)str.c_str(), " "); while (K > 1) { // Get the token at position -> key s = strtok(NULL, " "); K--; } // Print the kth integer cout << string(s) << " "; } // Driver Code int main() { // Given string string s("10 20 30 40"); // Given K int K = 2; // Function call print_kth_string(s, K); return 0; }
Java
// Java program of the // above approach import java.util.*; class GFG{ // Function to extract integer // at key position in the given String static void print_kth_String(String str, int K) { // StringTokenizer(): Extracts // the number at key // c_str(): Type cast // String to char* StringTokenizer st = new StringTokenizer(str); int count = 1; while (st.hasMoreTokens() && K > 0 ) { if(count == K) System.out.println(st.nextToken()); count++; st.nextToken(); } } // Driver Code public static void main(String[] args) { // Given String String s = ("10 20 30 40"); // Given K int K = 2; // Function call print_kth_String(s, K); } } // This code is contributed by 29AjayKumar
C#
// C# program of the // above approach using System; class GFG{ // Function to extract integer // at key position in the given String static void print_kth_String(String str, int K) { // StringTokenizer(): Extracts // the number at key // c_str(): Type cast // String to char* String[] iss = str.Split(' '); K--; Console.Write(iss[K]); } // Driver Code public static void Main(String[] args) { // Given String String s = ("10 20 30 40"); // Given K int K = 2; // Function call print_kth_String(s, K); } } // This code is contributed by Rajput-Ji
20
Complejidad de tiempo: O(N), donde N es la longitud de la string.
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por prernaajitgupta y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA