Find words which are greater than given length k (original) (raw)
Last Updated : 15 Dec, 2023
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 stringDriver 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
PHP
`
**Time Complexity: O(n), where n is the length of the given string.
**Auxiliary Space: O(n)
Method: Using list comprehension
C++ `
#include #include #include #include
using namespace std;
int main() { string sentence = "hello geeks for geeks is computer " "science portal"; int length = 4; vector 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 #include #include #include using namespace std;
// Function to find substring greater than K void stringLengthGreaterThanK(string n, int l) { vector 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 l = new List();
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 #include #include
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)