Open In App

Find words which are greater than given length k

Improve
Improve
Like Article
Like
Save
Share
Report

A string is given, and you have to find all the words (substrings separated by a space) which are greater than the given length k.

Examples:

Input : str = "hello geeks for geeks 
is computer science portal"
k = 4
Output : hello geeks geeks computer
science portal
Explanation : The output is list of all
words that are of length more than k.
Input : str = "string is fun in python"
k = 3
Output : string python

The idea is to first split the given string around space. Then traverse through all words. For every word, check

C++




// C++ program to find all string
// which are greater than given length k
 
#include <bits/stdc++.h>
using namespace std;
 
// function find string greater than
// length k
void string_k(string s, int k)
{
    // create an empty string
    string w = "";
    // iterate the loop till every space
    for (int i = 0; i < s.size(); i++) {
        if (s[i] != ' ')
 
            // append this sub string in
            // string w
            w = w + s[i];
        else {
 
            // if length of current sub
            // string w is greater than
            // k then print
            if (w.size() > k)
                cout << w << " ";
            w = "";
        }
    }
}
 
// Driver code
int main()
{
    string s = "geek for geeks";
    int k = 3;
    s = s + " ";
    string_k(s, k);
    return 0;
}
 
// This code is contributed by
// Manish Shaw (manishshaw1)


Java




// Java program to find all string
// which are greater than given length k
 
import java.io.*;
import java.util.*;
 
public class GFG {
 
    // function find string greater than
    // length k
    static void string_k(String s, int k)
    {
        // create the empty string
        String w = "";
 
        // iterate the loop till every space
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) != ' ')
 
                // append this sub string in
                // string w
                w = w + s.charAt(i);
            else {
 
                // if length of current sub
                // string w is greater than
                // k then print
                if (w.length() > k)
                    System.out.print(w + " ");
                w = "";
            }
        }
    }
 
    // Driver code
    public static void main(String args[])
    {
        String s = "geek for geeks";
        int k = 3;
        s = s + " ";
        string_k(s, k);
    }
}
 
// This code is contributed by
// Manish Shaw (manishshaw1)


Python




# Python program to find all string
# which are greater than given length k
 
# function find string greater than length k
 
 
def string_k(k, str):
 
    # create the empty string
    string = []
 
    # split the string where space is comes
    text = str.split(" ")
 
    # iterate the loop till every substring
    for x in text:
 
        # if length of current sub string
        # is greater than k then
        if len(x) > k:
 
            # append this sub string in
            # string list
            string.append(x)
 
     # return string list
    return string
 
 
# Driver Program
k = 3
str = "geek for geeks"
print(string_k(k, str))


C#




// C# program to find all string
// which are greater than given length k
 
using System;
 
class GFG {
 
    // function find string greater than
    // length k
    static void string_k(string s, int k)
    {
        // create the empty string
        string w = "";
 
        // iterate the loop till every space
        for (int i = 0; i < s.Length; i++) {
            if (s[i] != ' ')
 
                // append this sub string in
                // string w
                w = w + s[i];
            else {
 
                // if length of current sub
                // string w is greater than
                // k then print
                if (w.Length > k)
                    Console.Write(w + " ");
                w = "";
            }
        }
    }
 
    // Driver code
    static void Main()
    {
        string s = "geek for geeks";
        int k = 3;
        s = s + " ";
        string_k(s, k);
    }
}
 
// This code is contributed by
// Manish Shaw (manishshaw1)


Javascript




<script>
// javascript program to find all string
// which are greater than given length k
 
    // function find string greater than
    // length k
    function string_k( s , k) {
        // create the empty string
        var w = "";
 
        // iterate the loop till every space
        for (i = 0; i < s.length; i++) {
            if (s.charAt(i) != ' ')
 
                // append this sub string in
                // string w
                w = w + s.charAt(i);
            else {
 
                // if length of current sub
                // string w is greater than
                // k then print
                if (w.length > k)
                    document.write(w + " ");
                w = "";
            }
        }
    }
 
    // Driver code
     
        var s = "geek for geeks";
        var k = 3;
        s = s + " ";
        string_k(s, k);
 
// This code is contributed by todaysgaurav
</script>


PHP




<?php
// PHP program to find all $
// which are greater than given length k
 
// function find string greater than
// length k
function string_k($s, $k)
{
     
    // create the empty string
    $w = "";
     
    // iterate the loop till every space
    for($i = 0; $i < strlen($s); $i++)
    {
        if($s[$i] != ' ')
         
            // append this sub $in $w
            $w = $w.$s[$i];
        else {
             
            // if length of current sub
            // $w is greater than
            // k then print
            if(strlen($w) > $k)
                echo ($w." ");
            $w = "";
        }
    }
}
 
// Driver code
$s = "geek for geeks";
$k = 3;
$s = $s . " ";
string_k($s, $k);
 
// This code is contributed by
// Manish Shaw (manishshaw1)
?>


Output

geek geeks 


Time Complexity: O(n), where n is the length of the given string.
Auxiliary Space: O(n)

Method: Using list comprehension

C++




#include <iostream>
#include <sstream>
#include <string>
#include <vector>
 
using namespace std;
 
int main()
{
    string sentence = "hello geeks for geeks is computer "
                      "science portal";
    int length = 4;
    vector<string> words;
    stringstream ss(sentence);
    string word;
 
    while (ss >> word) {
        if (word.length() > length) {
            words.push_back(word);
        }
    }
 
    for (const auto& w : words) {
        cout << w << " ";
    }
 
    cout << endl;
 
    return 0;
}


Java




import java.util.Arrays;
 
public class Main {
    public static void main(String[] args)
    {
        String sentence
            = "hello geeks for geeks is computer science portal";
        int length = 4;
        String[] words
            = Arrays.stream(sentence.split(" "))
                  .filter(word -> word.length() > length)
                  .toArray(String[] ::new);
 
        System.out.println(Arrays.toString(words));
    }
}


Python3




sentence = "hello geeks for geeks is computer science portal"
length = 4
print([word for word in sentence.split() if len(word) > length])


C#




using System;
using System.Linq;
 
class Program
{
    static void Main(string[] args)
    {
        string sentence = "hello geeks for geeks is computer science portal";
        int length = 4;
        var words = sentence.Split(' ').Where(word => word.Length > length).ToArray();
 
        Console.WriteLine("[" + string.Join(", ", words.Select(w => "'" + w + "'")) + "]");
    }
}


Javascript




let sentence = "hello geeks for geeks is computer science portal";
let length = 4;
let words = sentence.split(" ").filter(word => word.length > length);
console.log(words);
 
// This code is contributed by codebraxnzt


Output

['hello', 'geeks', 'geeks', 'computer', 'science', 'portal']


Time Complexity: O(n), where n is the length of the given string.
Auxiliary Space: O(n)

Method: Using lambda function 

C++




// C++ program for the above approach
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
 
// Function to find substring greater than K
void stringLengthGreaterThanK(string n, int l)
{
    vector<string> s;
    string word = "";
 
    // Traverse the given string n
    for (char c : n) {
        if (c == ' ') {
            if (word.length() > 0) {
                s.push_back(word);
                word = "";
            }
        }
        else {
            word += c;
        }
    }
    if (word.length() > 0) {
        s.push_back(word);
    }
 
    // Stores the resultant string
    vector<string> filtered;
    for (string word : s) {
        if (word.length() > l) {
            filtered.push_back(word);
        }
    }
 
    // Print the string
    for (string word : filtered) {
        cout << word << " ";
    }
}
 
// Driver Code
int main()
{
    string S = "hello geeks for geeks is computer science "
               "portal";
    int K = 4;
    stringLengthGreaterThanK(S, K);
 
    return 0;
}


Java




// Java program for the above approach
 
import java.util.*;
 
public class Main {
 
    // Driver Code
    public static void main(String[] args)
    {
 
        String S = "hello geeks for geeks is computer science portal";
        int K = 4;
        String[] s = S.split(" ");
        List<String> l = new ArrayList<>();
 
        for (String str : s) {
            if (str.length() > K) {
                l.add(str);
            }
        }
 
        System.out.println(l);
    }
}


Python3




# Python program for the above approach
 
# Driver Code
S = "hello geeks for geeks is computer science portal"
K = 4
s = S.split(" ")
l = list(filter(lambda x: (len(x) > K), s))
 
print(l)


C#




using System;
using System.Linq;
using System.Collections.Generic;
 
public class Program
{
    public static void Main()
    {
        string S = "hello geeks for geeks is computer science portal";
        int K = 4;
        string[] s = S.Split(' ');
        List<string> l = new List<string>();
 
        foreach(string word in s)
        {
            if(word.Length > K)
            {
                l.Add(word);
            }
        }
 
        Console.WriteLine(string.Join(", ", l));
    }
}


Javascript




// JavaScript program for the above approach
 
// Driver Code
let S = "hello geeks for geeks is computer science portal";
let K = 4;
let s = S.split(" ");
let l = s.filter((x) => x.length > K);
 
console.log(l);


Output

['hello', 'geeks', 'geeks', 'computer', 'science', 'portal']


Time Complexity: O(n), where n is the length of the given string.
Auxiliary Space: O(n)

Method: Using the enumerate function 

C++




#include <iostream>
#include <string>
#include <vector>
 
using namespace std;
 
int main() {
    // Define the input sentence and minimum word length
    string sentence = "hello geeks for geeks is computer science portal";
    int length = 4;
 
    // Split the sentence into words and store them in a vector
    vector<string> s;
    string word;
    for (int i = 0; i < sentence.length(); i++) {
        if (sentence[i] == ' ') {
            s.push_back(word);
            word = "";
        } else {
            word += sentence[i];
        }
    }
    s.push_back(word);
 
    // Filter out words shorter than the minimum length and store them in a new vector
    vector<string> l;
    for (int i = 0; i < s.size(); i++) {
        if (s[i].length() > length) {
            l.push_back(s[i]);
        }
    }
 
    // Print the filtered words
    for (int i = 0; i < l.size(); i++) {
        cout << l[i] << " ";
    }
    cout << endl;
 
    return 0;
}


Java




// Java program for the above approach
 
import java.util.ArrayList;
import java.util.List;
 
public class Main {
    public static void main(String[] args)
    {
        String sentence
            = "hello geeks for geeks is computer science portal";
        int length = 4;
        // Split the sentence into words using spaces as
        // delimiters.
        String[] s = sentence.split(" ");
 
        // Find the words with length greater than the given
        // length.
        List<String> result = new ArrayList<>();
        for (int i = 0; i < s.length; i++) {
            if (s[i].length() > length) {
                result.add(s[i]);
            }
        }
 
        // Print the result.
        for (int i = 0; i < result.size(); i++) {
            System.out.print(result.get(i) + " ");
        }
        System.out.println();
    }
}


Python3




sentence = "hello geeks for geeks is computer science portal"
length = 4
s = sentence.split()
print([a for i, a in enumerate(s) if len(a) > length])


C#




// C# code addition find words which are greater than given length k.
using System;
using System.Collections.Generic;
 
class GFG
{
    static void Main()
    {
        // Define the input sentence and minimum word length
        string sentence = "hello geeks for geeks is computer science portal";
        int length = 4;
 
        // Split the sentence into words and store them in a list
        List<string> words = new List<string>();
        string word = "";
        foreach (char c in sentence)
        {
            if (c == ' ')
            {
                words.Add(word);
                word = "";
            }
            else
            {
                word += c;
            }
        }
        words.Add(word);
 
        // Filter out words shorter than the minimum length and store them in a new list
        List<string> filteredWords = new List<string>();
        foreach (string w in words)
        {
            if (w.Length > length)
            {
                filteredWords.Add(w);
            }
        }
 
        // Print the filtered words
        foreach (string w in filteredWords)
        {
            Console.Write(w + " ");
        }
        Console.WriteLine();
    }
}
 
// The code is contributed by Nidhi goel.


Javascript




// JavaScript program for the above approach
let sentence = "hello geeks for geeks is computer science portal";
let length = 4;
 
// Split the sentence into words using spaces as delimiters.
let words = sentence.split(" ");
 
// Find the words with length greater than the given length.
let result = [];
for (let i = 0; i < words.length; i++) {
    if (words[i].length > length) {
        result.push(words[i]);
    }
}
 
// Print the result.
console.log(result);


Output

['hello', 'geeks', 'geeks', 'computer', 'science', 'portal']


Time Complexity: O(n), where n is the length of the given string.
Auxiliary Space: O(n)



Last Updated : 15 Dec, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads