Open In App
Related Articles

Find words which are greater than given length k

Improve Article
Improve
Save Article
Save
Like Article
Like

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)


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)


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))


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)
?>


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>


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;
}


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 + "'")) + "]");
    }
}


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])


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 

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++




// 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);
    }
}


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 

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])


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();
    }
}


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;
}


Output

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

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


Feeling lost in the world of random DSA topics, wasting time without progress? It's time for a change! Join our DSA course, where we'll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 geeks!

Last Updated : 25 Apr, 2023
Like Article
Save Article
Similar Reads
Related Tutorials