Kth space-separated number from a given string

Given a string S consisting of space-separated integers, the task is to extract the Kth number present in the string.
Note: The string contains at least K numbers in it.
Examples:
Input: S = “12 13 15”, K= 3
Output: 15
Explanation: The 3rd integer in the above string is 15.Input: S = “10 20 30 40”, K = 2
Output: 20
Explanation: The 2nd integer in the above string is 20.
Naive Approach: The simplest approach to solve the problem is to traverse the string and keep a count of spaces encountered. Once, K – 1 spaces are encountered, print the number up to the next space as the required answer.
Below is the implementation of the above approach:
C++
// C++ Program for the above approach#include <iostream>using namespace std;// Function to print kth integer// in a given stringvoid 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 Codeint 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 approachimport java.io.*;class GFG{ // Function to print kth integer// in a given stringstatic 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 Codepublic 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 stringdef 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 Codeif __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 stringstatic 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 Codepublic 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
Time Complexity: O(N), where N is the length of the string.
Auxiliary Space: O(1)
Stringstream Approach: The idea is to use stringstream in C++ which associates a string object with a stream and allowing us to read from the string as if it were a stream (like cin).
Below is the implementation of the above approach:
C++
// C++ program for the above approach#include <bits/stdc++.h>using namespace std;// Function to print Kth integer// from a given stringvoid 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 Codeint 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 approachimport java.util.*;class GFG{// Function to print Kth integer// from a given Stringstatic 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 Codepublic 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 stringdef print_kth_string(str1, K): # Split input into words # using stringstream st = str1.split(" ") # Stores individual words print(st[K - 1])# Driver Codeif __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 approachusing System;class GFG{// Function to print Kth integer// from a given Stringstatic void print_kth_String(String str, int K) { // Split input into words // using split String[] iss = str.Split(' '); K--; Console.Write(iss[K]);}// Driver Codepublic 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 |
Javascript
// Function to print Kth integer from a given stringfunction print_kth_String(str, K) { // Split input into words using split let iss = str.split(" "); K--; console.log(iss[K]);}// Driver Codelet s = "10 20 30 40";let K = 4;// Function callprint_kth_String(s, K); |
40
Time Complexity: O(N), where N is the length of the string.
Auxiliary Space: O(1)
Built-in String Functions based Approach: The idea is to use strtok() function to extract the string at the key. Use c_str() function to get the char pointer reference of an array of the characters.
Below is the implementation of the above approach:
C++
// C++ program of the above approach#include <cstring>#include <iostream>using namespace std;// Function to extract integer at key// position in the given stringvoid 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 Codeint 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 approachimport java.util.*;class GFG{// Function to extract integer // at key position in the given Stringstatic 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 Codepublic 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 |
Python3
# Python code of the above approachimport re# Function to extract integer at key# position in the given stringdef print_kth_string(string, K): # split the string using space as a separator s = re.split(" ", string) # return the Kth element of the split string return s[K-1]# Driver Codeif __name__ == '__main__': # Given string s = "10 20 30 40" # Given K K = 2 # Function call print(print_kth_string(s, K)) |
C#
// C# program of the // above approachusing System;class GFG{// Function to extract integer // at key position in the given Stringstatic 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 Codepublic 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 |
Javascript
// Function to extract integer at key position in the given stringfunction print_kth_string(str, K) { // Split input string into words using split let words = str.split(" "); // Print the Kth integer console.log(words[K-1]);}// Driver Codelet s = "10 20 30 40";let K = 2;// Function callprint_kth_string(s, K); |
20
Time Complexity: O(N), where N is the length of the string.
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



