Skip to content
Related Articles
Open in App
Not now

Related Articles

Python – Capitalize repeated characters in a string

Improve Article
Save Article
  • Difficulty Level : Expert
  • Last Updated : 06 Jan, 2023
Improve Article
Save Article

Given an input string with lowercase letters, the task is to write a python program to identify the repeated characters in the string and capitalize them.

Examples:

Input: programming language
Output: pRoGRAMMiNG lANGuAGe
Explanation: r,m,n,a,g are repeated elements

Input: geeks for geeks
Output: GEEKS for GEEKS
Explanation: g,e,k,s are repeated elements

Approach 1:

  • We have to keep the character of a string as a key and the frequency of each character of the string as a value in the dictionary.
  • Traverse the string and check the frequency of each character using a dictionary if the frequency of the character is greater than one then change the character to the uppercase using the upper() function.

Implementation:

Python3




# function for changing the
# repeated characters to uppercase
def RepeatedUpper(s):
 
    # declaring dictionary
    dic = {}
 
    # Traversing the string
    for i in s:
 
        # If the character is already
        # present in dictionary then increment
        # the frequency of the character
        if i in dic:
            dic[i] = dic[i]+1
 
   # If the character is not present in
   # the dictionary then inserting
   # the character in the dictionary
        else:
            dic[i] = 1
    ans = ''
 
    # traversing the string
    for i in s:
 
        # if the frequency of the character is
        # greater than one
        if dic[i] > 1:
 
            # change into uppercase
            i = i.upper()
 
        # appending each character to the ans
        ans = ans+i
    return ans
 
 
# Driver code
s = 'geeks for geeks'
# function call
print(RepeatedUpper(s))


Output

GEEKS for GEEKS

Time Complexity: O(n)
Auxiliary Space: O(n)

Approach 2:

Using count() function.If count is greater than 1 then the character is repeated.Later on used upper() to convert to uppercase

Python3




s = "programming language"
new_str=""
for i in s:
    if(i!="" and s.count(i)>1):
        new_str+=i.upper()
    else:
        new_str+=i
print(new_str)
        


Output

pRoGRAMMiNG lANGuAGe

Time Complexity: O(n2) -> (count function + loop)
Auxiliary Space: O(n)

Approach 3: Using replace() and len() methods

Python3




#Capitalize repeated letters
s = "programming language"
length=len(s)
new_str=""
for i in s:
    x=s.replace(i,"")
    if(len(x)!=length-1):
        new_str+=i.upper()
    else:
        new_str+=i
print(new_str)


Output

pRoGRAMMiNG lANGuAGe

Time Complexity: O(n2) -> (replace function + loop)
Auxiliary Space: O(n)

Approach #4 : Using Counter() function

Python3




from collections import Counter
s = "programming language"
new_str = ""
freq = Counter(s)
for i in s:
    if(i != "" and freq[i] > 1):
        new_str += i.upper()
    else:
        new_str += i
print(new_str)


Output

pRoGRAMMiNG lANGuAGe

Time Complexity: O(n)
Auxiliary Space: O(n)


My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!