Open In App

Python program to capitalize the first and last character of each word in a string

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 geeksforgeeks
Output: WelcomE TO GeeksforgeekS

Approach:1

Below is the implementation. 






# 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 geeksforgeeks"
print("String before:", s)
print("String after:", word_both_cap(str))

Output
String before: welcome to geeksforgeeks
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




# Python program to capitalize
# first and last character of
# each word of a String
 
s = "welcome to geeksforgeeks"
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)

Output
String before: welcome to geeksforgeeks
String after: WelcomE TO GeeksforgeekS

Time Complexity: O(n)

Auxiliary Space: O(n)

Approach: 3: Using loop + title() + split() + upper() + strip() (Sclicing)




"""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

Output
String before: hello world
String after: HellO WorlD

Time Complexity: O(n)

Auxiliary Space: O(n), where n is number of characters in string.


Article Tags :