Given string str representing a sentence, and an integer K, the task is to capitalize all the words in the given sentence having at least K characters.
Example:
Input: str = “geeks for geeks”, K = 4
Output: Geeks for Geeks
Explanation: The word “for” does not contain 4 characters, hence its 1st character is not capitalize.Input: str = “geeksforgeeks is the best”, K = 0
Output: Geeksforgeeks Is The Best
Approach: This is an implementation-based problem.
- The idea is to calculate the character count of each word and,
- if the count of characters is greater than K,
- change the case of the 1st character of the word to the upper case
Below is the implementation of the above approach:
// C++ program of the above approach #include <bits/stdc++.h> using namespace std;
// Function to capitalize the 1st // character of all words having // at least K characters string capitalizeStr(string str, int K)
{ // Stores location of
// the 1st character of
// the current word
int ptr = 0;
// Loop to traverse string
for ( int i = 0; i < str.size(); i++) {
// If the current word
// ends at index i
if (str[i] == ' ' ) {
// Update ptr
ptr = i + 1;
}
// Count of characters
// is at least K
else if (i - ptr + 1 >= K) {
str[ptr] = toupper (str[ptr]);
}
}
// Return answer
return str;
} // Driver Code int main()
{ string str = "geeksforgeeks is the best" ;
int K = 0;
cout << capitalizeStr(str, K);
return 0;
} |
// Java program of the above approach import java.util.*;
class GFG
{ // Function to capitalize the 1st
// character of all words having
// at least K characters
public static String capitalizeStr(String str, int K)
{
// Stores location of
// the 1st character of
// the current word
int ptr = 0 ;
char [] ch = str.toCharArray();
// Loop to traverse string
for ( int i = 0 ; i < ch.length; i++) {
// If the current word
// ends at index i
if (ch[i] == ' ' ) {
// Update ptr
ptr = i + 1 ;
}
// Count of characters
// is at least K
else if (i - ptr + 1 >= K) {
ch[ptr] = Character.toUpperCase(ch[ptr]);
}
}
String s = new String(ch);
// Return answer
return s;
}
// Driver Code
public static void main(String args[])
{
String str = "geeksforgeeks is the best" ;
int K = 0 ;
System.out.println(capitalizeStr(str, K));
}
} // This code is contributed by Taranpreet |
# python3 program of the above approach # Function to capitalize the 1st # character of all words having # at least K characters def capitalizeStr( str , K):
str = list ( str )
# Stores location of
# the 1st character of
# the current word
ptr = 0
# Loop to traverse string
for i in range ( 0 , len ( str )):
# If the current word
# ends at index i
if ( str [i] = = ' ' ):
# Update ptr
ptr = i + 1
# Count of characters
# is at least K
elif (i - ptr + 1 > = K):
str [ptr] = str [ptr].upper()
# Return answer
return "".join( str )
# Driver Code if __name__ = = "__main__" :
str = "geeksforgeeks is the best"
K = 0
print (capitalizeStr( str , K))
# This code is contributed by rakeshsahni
|
// C# program of the above approach using System;
class GFG {
// Function to capitalize the 1st
// character of all words having
// at least K characters
static string capitalizeStr( string str, int K)
{
// Stores location of
// the 1st character of
// the current word
int ptr = 0;
char [] ch = str.ToCharArray();
// Loop to traverse string
for ( int i = 0; i < ch.Length; i++) {
// If the current word
// ends at index i
if (ch[i] == ' ' ) {
// Update ptr
ptr = i + 1;
}
// Count of characters
// is at least K
else if (i - ptr + 1 >= K) {
ch[ptr] = Char.ToUpper(ch[ptr]);
}
}
string s = string .Concat(ch);
// Return answer
return s;
}
// Driver Code
public static void Main()
{
string str = "geeksforgeeks is the best" ;
int K = 0;
Console.WriteLine(capitalizeStr(str, K));
}
} // This code is contributed by Samim Hossain Mondal. |
<script> // Javascript program of the above approach // Function to capitalize the 1st // character of all words having // at least K characters function capitalizeStr(str, K)
{ str = str.split( "" )
// Stores location of
// the 1st character of
// the current word
let ptr = 0;
// Loop to traverse string
for (let i = 0; i < str.length; i++) {
// If the current word
// ends at index i
if (str[i] == ' ' ) {
// Update ptr
ptr = i + 1;
}
// Count of characters
// is at least K
else if (i - ptr + 1 >= K) {
str[ptr] = str[ptr].toUpperCase()
}
}
// Return answer
return str.join( "" );
} // Driver Code let str = "geeksforgeeks is the best" ;
let K = 0; document.write(capitalizeStr(str, K)) // This code is contributed by saurabh_jaiswal. </script> |
Geeksforgeeks Is The Best
Time Complexity: O(N), where N is the count of characters in string str.
Auxiliary space: O(1)