Given a string, replace all the vowels with character K.
Input : test_str = “Geeks for Geeks”; K=’#’
Output : “G##ks f#r G##ks”
Explanation : All the vowels in test_str are replaced by a given particular character.Input : test_list = “GFG”; K=”$”
Output : GFG
Explanation : As test_str contained no vowel, so the same string is returned.
Method #1 : Using loop + replace()
Initially create a string of vowels and then iterate through the given test_str, on detecting a vowel in test_str replace the vowel with K using replace() method.
# Function to Replace each vowel in # the string with a specified character def replaceVowelsWithK(test_str, K):
# string of vowels
vowels = 'AEIOUaeiou'
# iterating to check vowels in string
for ele in vowels:
# replacing vowel with the specified character
test_str = test_str.replace(ele, K)
return test_str
# Driver Code # input string input_str = "Geeks for Geeks"
# specified character K = "#"
# printing input print ( "Given String:" , input_str)
print ( "Given Specified Character:" , K)
# printing output print ( "After replacing vowels with the specified character:" ,
replaceVowelsWithK(input_str, K))
|
Given String: Geeks for Geeks Given Specified Character: # After replacing vowels with the specified character: G##ks f#r G##ks
Time Complexity: O(n), where n is the length of the input string. The for loop iterates over the vowels in the string only once.
Auxiliary Space: O(1), as we are not using any data structure to store the vowels or the output string, and are instead modifying the input string in place.
Method #2 : Using nested loop
Here, we first convert the given string into a list and then create a list of vowels and an empty list i.e new_string. After that elements of both string_list and vowel_list are compared and if the element is a vowel then K is appended to new_string else the element of the given string is appended.
# Function to Replace each vowel # in the string with a specified character def replaceVowelsWithK(test_str, K):
# creating list of vowels
vowels_list = [ 'A' , 'E' , 'I' , 'O' , 'U' , 'a' , 'e' , 'i' , 'o' , 'u' ]
# creating empty list
new_string = []
# converting the given string to list
string_list = list (test_str)
# running 1st iteration for
# comparing all the
# characters of string with
# the vowel characters
for char in string_list:
# running 2nd iteration for
# comparing all the characters
# of vowels with the string character
for char2 in vowels_list:
# comparing string character
# and vowel character
if char = = char2:
# if condition is true then adding
# the specific character entered
# by the user in the new list
new_string.append(K)
break
# else adding the character
else :
new_string.append(char)
# return the converted list into string
return (''.join(new_string))
# Driver Code # input string input_str = "Geeks for Geeks"
# specified character K = "#"
# printing input print ( "Given String:" , input_str)
print ( "Given Specified Character:" , K)
# printing output print ( "After replacing vowels with the specified character:" ,
replaceVowelsWithK(input_str, K))
|
Given String: Geeks for Geeks Given Specified Character: # After replacing vowels with the specified character: G##ks f#r G##ks
Time complexity: O(n^2), where n is the length of the input string.
Auxiliary space: O(n), where n is the length of the input string.
Method#3: Using re.sub() method.
Here, we match the pattern with the help of regular expression and use re.sub method of regular expression module to substitute the matched pattern in the string with specified character.
# Function to Replace each vowel in # the string with a specified character import re
def replaceVowelsWithK(test_str, K):
# string of vowels
vowels = 'AEIOUaeiou'
return re.sub(rf '[{vowels}]' , K, test_str)
# Driver Code # input string input_str = "Geeks for Geeks"
# specified character K = "&"
# printing input print ( "Given String:" , input_str)
print ( "Given Specified Character:" , K)
# printing output print ( "After replacing vowels with the specified character:" ,
replaceVowelsWithK(input_str, K))
|
Output:
Given String: Geeks for Geeks Given Specified Character: & After replacing vowels with the specified character: G&&ks f&r G&&ks
Method#4: Using keys()+join()+append()+ vowels dictionary
# Function to Replace each vowel # in the string with a specified character vowels = {
"a" : 0 , "e" : 0 , "i" : 0 , "o" : 0 , "u" : 0 ,
"A" : 0 , "E" : 0 , "I" : 0 , "O" : 0 , "U" : 0 }
def replaceVowelsWithK(test_str, K):
# creating empty list
new_string = []
# converting the given string to list
string_list = list (test_str)
# running 1st iteration for
# comparing all the
# characters of string with
# the vowel characters
for char in string_list:
if char in vowels.keys():
new_string.append(K)
# else adding the character
else :
new_string.append(char)
# return the converted list into string
return (''.join(new_string))
# Driver Code # input string input_str = "Geeks for Geeks"
# specified character K = "#"
# printing input print ( "Given String:" , input_str)
print ( "Given Specified Character:" , K)
# printing output print ( "After replacing vowels with the specified character:" ,
replaceVowelsWithK(input_str, K))
|
Given String: Geeks for Geeks Given Specified Character: # After replacing vowels with the specified character: G##ks f#r G##ks
Time Complexity: O(N)
Auxiliary Space: O(N)
Method#5: Using translate () method.
#Initializing Test_str test_str = "Geeks for Geeks"
#Declaring specified character K = '#'
#Printing original string print ( "Given String:" , test_str)
#printing Specified Character print ( "Given Specified Character:" , K)
#Declaring Vowels vowels = "aeiouAEIOU"
#str.maketrans() method creates a translation table that replaces vowels in the string with "#". trans = str .maketrans(vowels, K * len (vowels))
#The translate() method then applies this translation table to the original string and replaces the vowels with "#. test_str = test_str.translate(trans)
#printing output print ( "After replacing vowels with the specified character:" ,
test_str)
|
Given String: Geeks for Geeks Given Specified Character: # After replacing vowels with the specified character: G##ks f#r G##ks
Method #6 : Using ord() method
# Program to Replace each vowel in # the string with a specified character # input string input_str = "Geeks for Geeks"
# specified character K = "#"
# printing input print ( "Given String:" , input_str)
print ( "Given Specified Character:" , K)
vow = [ 97 , 101 , 105 , 111 , 117 , 65 , 69 , 73 , 79 , 85 ]
for i in input_str:
if ord (i) in vow:
input_str = input_str.replace(i,K)
# printing output print ( "After replacing vowels with the specified character:" ,input_str)
|
Given String: Geeks for Geeks Given Specified Character: # After replacing vowels with the specified character: G##ks f#r G##ks
Time Complexity : O(N)
Auxiliary Space : O(N)
Method #7: Using list comprehension and join() method
This method involves using a list comprehension to iterate through each character in the input string, replacing each vowel encountered with the specified character K. Finally, the list is joined back into a string and returned as the output.
Step-by-step approach:
- Define a function replaceVowelsWithK_v2 that takes two arguments: test_str and K.
- Create a list comprehension that iterates through each character in test_str. If the character is a vowel, replace it with the specified character K; otherwise, leave it unchanged.
- Use the join() method to join the list of characters back into a string.
- Return the modified string as output.
- Test the function by calling it with sample inputs.
def replaceVowelsWithK_v2(test_str, K):
# string of vowels
vowels = 'AEIOUaeiou'
# list comprehension to replace vowels with K
new_str = [K if ele in vowels else ele for ele in test_str]
# join the list of characters back into a string
output_str = ''.join(new_str)
return output_str
# Driver Code # input string input_str = "Geeks for Geeks"
# specified character K = "#"
# printing input print ( "Given String:" , input_str)
print ( "Given Specified Character:" , K)
# printing output print ( "After replacing vowels with the specified character:" ,
replaceVowelsWithK_v2(input_str, K))
|
Given String: Geeks for Geeks Given Specified Character: # After replacing vowels with the specified character: G##ks f#r G##ks
Time complexity: O(n)
Auxiliary space: O(n)