Given a string containing lowercase characters. The task is to print the maximum occurring character in the input string. If 2 or more characters appear the same number of times, print the lexicographically (alphabetically) lowest (first) character.
Input: test sample
‘t’, ‘e’ and ‘s’ appears 2 times, but ‘e’ is the lexicographically smallest character.
Input: sample program
In the previous article, if there are more than one characters occurring the maximum number of time, then any of the characters is returned. In this post, the lexicographically smallest character of all the characters is returned.
Approach: Declare a freq array which is used as a hash table to store the frequencies of each character in the input string. Iterate in the string and increase the count of freq[s[i]] for every character.T raverse the freq array from left to right and keep track of the character having the maximum frequency so far. The value at freq[i] represents the frequency of character (i + ‘a’).
Below is the implementation of the above approach:
# Python 3 implementation to find the
# maximum occurring character in an input
# string which is lexicographically first
# function to find the maximum occurring
# character in an input string which is
# lexicographically first
# freq used as hash table
freq = [0 for i in range(100)]
# to store maximum frequency
max = -1
# to store the maximum occurring
# character length of ‘str’
len__ = len(str)
# get frequency of each character of ‘str’
for i in range(0, len__, 1):
freq[ord(str[i]) – ord(‘a’)] += 1
# for each character, where character
# is obtained by (i + ‘a’) check whether
# it is the maximum character so far and
# accodingly update ‘result’
for i in range(26):
if (max < freq[i]): max = freq[i] result = chr(ord('a') + i) # maximum occurring character return result # Driver Code if __name__ == '__main__': str = "sample program" print("Maximum occurring character =", getMaxOccurringChar(str)) # This code is contributed by # Surendra_Gangwar [tabby title="C#"]
Maximum occurring character = a
Time Complexity: O(n).
Auxiliary Space: O(1).
- Return maximum occurring character in an input string
- Check if max occurring character of one string appears same no. of times in other
- Generate two output strings depending upon occurrence of character in input string.
- Generate two output strings depending upon occurrence of character in input string in Python
- Count substrings with each character occurring at most k times
- Maximum consecutive repeating character in string
- Maximum number of characters between any two same character in a string
- Find a string such that every character is lexicographically greater than its immediate next character
- Replace every character of string by character whose ASCII value is K times more than it
- Check if frequency of character in one string is a factor or multiple of frequency of same character in other string
- Count the number of vowels occurring in all the substrings of given string
- Replace every character of a string by a different character
- Lexicographically smallest string formed by appending a character from the first K characters of a given string
- Find the character in first string that is present at minimum index in second string
- Queries to find the first non-repeating character in the sub-string of a string
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.