Given the string, the task is to capitalize the first and last character of each word in a string.
Examples:
Input: hello world
Output: HellO WorlD
Input: welcome to neveropen
Output: WelcomE TO GeeksforgeekS
Approach:1
- Access the last element using indexing.
- Capitalize the first word using the title() method.
- Then join each word using join() method.
- Perform all the operations inside lambda for writing the code in one line.
Below is the implementation.
Python3
# Python program to capitalize # first and last character of # each word of a String # Function to do the same def word_both_cap( str ): # lambda function for capitalizing the # first and last letter of words in # the string return ' ' .join( map ( lambda s: s[: - 1 ] + s[ - 1 ].upper(), s.title().split())) # Driver's code s = "welcome to neveropen" print ( "String before:" , s) print ( "String after:" , word_both_cap( str )) |
String before: welcome to neveropen String after: WelcomE TO GeeksforgeekS
There used a built-in function map( ) in place of that also we can use filter( ).Basically these are the functions which take a list or any other function and give result on it.
Time Complexity: O(n)
Auxiliary Space: O(n), where n is number of characters in string.
Approach: 2: Using slicing and upper(),split() methods
Python3
# Python program to capitalize # first and last character of # each word of a String s = "welcome to neveropen" print ( "String before:" , s) a = s.split() res = [] for i in a: x = i[ 0 ].upper() + i[ 1 : - 1 ] + i[ - 1 ].upper() res.append(x) res = " " .join(res) print ( "String after:" , res) |
String before: welcome to neveropen String after: WelcomE TO GeeksforgeekS
Time Complexity: O(n)
Auxiliary Space: O(n)
Approach: 3: Using loop + title() + split() + upper() + strip() (Sclicing)
Python3
"""Python program to capitalize the first character and the last character of each word in the string""" # Taking the strign input test_str = "hello world" # Without any changes in the string print ( "String before:" , test_str) # Creating an empty string string = "" # Using for loop + the functions to capitalize for i in test_str.title().split(): string + = (i[: - 1 ] + i[ - 1 ].upper()) + ' ' print ( "String after:" , string.strip()) # To remove the space at the end |
String before: hello world String after: HellO WorlD
Time Complexity: O(n)
Auxiliary Space: O(n), where n is number of characters in string.