The first thing that we have to keep in my mind while solving this kind of problem is that the strings are immutable i.e,
If I am taking the following string
var string1 = "geeksforgeeks";
string1[0] = "G";
console.log(string1);
As strings are immutable, so we cannot change the character of the string, so the output of the above code will be the following.
Output:
geeksforgeeks
Approach:
There are several ways to solve this problem. Some of them are as follows.
- Splitting the string into 2 different parts and changing the first part to the UPPERCASE and concatenating the new strings to get the output.
- Create an empty string and add each character of the string to it using FOR loop.
- Using the slicing property of strings to get the output.
Method 1: This method is implemented using 2 new variables.
- Add the string into the variable.
- Store the length of the string into a variable using string.length function.
- Create two empty strings which are used in the future to store the newly created strings.
- Use of for loops to traverse in the string.
- Convert the first string to the upper case using toUpperCase().
- Concatenate both of the strings to get the output.
C++
#include <iostream>
using namespace std;
int main() {
string str = "geeksforgeeks" ,ans;
int len = str.length();
for ( int i = 0;i<len;i++){
if (i<=len/2){
char a = toupper (str[i]);
ans.push_back(a);
} else
ans.push_back(str[i]);
}
cout<<ans;
return 0;
}
|
Python3
import math
string1 = 'geeksforgeeks'
string1_len = len (string1)
part_a = ''
part_b = ''
for i in range ( int (math.ceil(string1_len / / 2 + 1 ))):
part_a + = string1[i]
for i in range ( int (math.ceil(string1_len / / 2 )) + 1 ,
string1_len):
part_b + = string1[i]
new_part_a = part_a.upper()
changed_string = new_part_a + part_b
print (changed_string)
|
Javascript
<script>
var string1 = 'geeksforgeeks' ;
var string1_len = string1.length;
var part_a = '' ;
var part_b = '' ;
for ( var i=0 ; i<Math.ceil(string1_len/2) ; i++)
{
part_a+=string1[i];
}
for ( var i=Math.ceil(string1_len/2) ; i<string1_len ; i++)
{
part_b+=string1[i];
}
var new_part_a = part_a.toUpperCase();
var changed_string = new_part_a + part_b;
console.log(changed_string);
</script>
|
Time Complexity: O(N)
Auxiliary Space: O(1)
Method 2: This method is implemented using a single new variable.
- Add the string into the variable.
- Store the length of the string into a variable using string.length function.
- Create an empty string that is used in the future to store the newly created string.
- Use of for loops to traverse the string.
- Log the final string to get the output.
C++
#include <iostream>
using namespace std;
string convertFun(string& s1, int n)
{
string ans = "" ;
for ( int i = 0; i < n / 2; i++) {
ans += toupper (s1[i]);
}
for ( int i = n / 2; i < n; i++) {
ans += s1[i];
}
return ans;
}
int main()
{
string s1 = "geeksforgeeks" ;
int n = s1.size();
cout << convertFun(s1, n);
return 0;
}
|
Javascript
<script>
var string1 = 'gfg' ;
var string1_len = string1.length;
var changed_string = '' ;
for ( var i=0 ; i<Math.ceil(string1_len/2) ; i++)
{
changed_string+=string1[i].toUpperCase();
}
for ( var i=Math.ceil(string1_len/2) ; i<string1_len ; i++)
{
changed_string+=string1[i];
}
console.log(changed_string);
</script>
|
Python3
import math
string1 = 'gfg' ;
string1_len = len (string1)
changed_string = ''
for i in range (math.ceil(string1_len / 2 )):
changed_string + = string1[i].upper();
for i in range (math.ceil(string1_len / 2 ), string1_len):
changed_string + = string1[i]
print (changed_string)
|
Time Complexity: O(N)
Auxiliary Space: O(1)
Method 3: This method is implemented using the JavaScript Slice property.
- Add the string into the variable.
- Store the length of the string into a variable using string.length function.
- Store the ceil value of half of the length of the string to the new variable.
- Create 2 empty strings which are used in the future to store the newly created strings.
- Add string to the variables using string slicing property.
- Convert the first string to the upper case using toUpperCase().
- Concatenate both of the strings to get the output.
Python3
import math
string1 = 'geeksforgeeks'
string1_len = len (string1)
half_string = math.ceil(string1_len / 2 )
part_a = ''
part_b = ''
part_a = string1[:half_string]
new_part_a = part_a.upper()
part_b = string1[half_string:string1_len]
changed_string = new_part_a + part_b
print (changed_string)
|
Javascript
<script>
var string1 = 'geeks for geeks' ;
var string1_len = string1.length;
var half_string = Math.ceil(string1_len/2);
var part_a;
var part_b;
part_a = string1.slice(0,half_string);
var new_part_a = part_a.toUpperCase();
part_b = string1.slice(half_string,string1_len);
var changed_string = new_part_a+part_b;
console.log(changed_string);
</script>
|
Time Complexity: O(N)
Auxiliary Space: O(N)
In these ways, you can solve these kinds of problems.