Максимальная частота повторения символов в данной строке
Для данной строки S задача состоит в том, чтобы найти счетчик максимальной частоты повторения символов в данной строке S.
Примеры :
Input: S = “geeksgeeks”
Output: Frequency 2 is repeated 3 times
Explanation:
Frequency of characters in the given string –
{“g”: 2, “e”: 4, “k”: 2, “s”: 2}
The frequency 2 is repeated thrice for the characters “g”, “k”, “s”.Input: S = “abcabcdedee”
Output: Frequency 2 is repeated 4 times.
Explanation:
Frequency of characters in the given string –
{“a”: 2, “b”: 2, “c”: 2, “d”: 2, “e”: 3}
The frequency 2 is repeated four times for the characters “a”, “b”, “c”, “d”.
Рекомендуется: сначала попробуйте свой подход в {IDE}, прежде чем переходить к решению.
Эффективный подход:
- Идея состоит в том, чтобы сначала сохранить частоту символов строки в массиве размером 26. Поскольку все символы строк относятся к 26 строчным английским алфавитам, мы можем сохранить частоту символов в массиве размером 26.
- Создайте хэш-карту, чтобы сохранить количество частот символов и вернуть частоту, которая встречается максимальное время.
Ниже представлена реализация описанного выше подхода:
C ++
// C++ implementation to find the // maximum repeated frequency of // characters in the given string #include <bits/stdc++.h> using namespace std; // Function to find the maximum // repeated frequency of the // characters in the given string void findMaxFrequency(string s) { // Hash-Array to store the // frequency of characters int arr[26] = { 0 }; // Loop to find the frequency // of the characters for ( int i = 0; i < s.length(); i++) arr[s[i] - 'a' ]++; // Hash map to store the occurrence // of frequencies of characters unordered_map< int , int > hash; for ( int i = 0; i < 26; i++) if (arr[i] != 0) hash[arr[i]]++; // Loop to find the maximum // Repeated frequency from hash-map int max_count = 0, res = -1; for ( auto i : hash) { if (max_count < i.second) { res = i.first; max_count = i.second; } } cout << "Frequency " << res << " is repeated " << max_count<< " times" ; } // Driver Code int main() { string s = "geeksgeeks" ; // Function Call findMaxFrequency(s); return 0; } |
Ява
// Java implementation to find the // maximum repeated frequency of // characters in the given String import java.util.*; class GFG{ // Function to find the maximum // repeated frequency of the // characters in the given String static void findMaxFrequency(String s) { // Hash-Array to store the // frequency of characters int arr[] = new int [ 26 ]; // Loop to find the frequency // of the characters for ( int i = 0 ; i < s.length(); i++) arr[s.charAt(i) - 'a' ]++; // Hash map to store the occurrence // of frequencies of characters HashMap<Integer,Integer> hash = new HashMap<Integer,Integer>(); for ( int i = 0 ; i < 26 ; i++) if (arr[i] != 0 ) { if (hash.containsKey(arr[i])){ hash.put(arr[i], hash.get(arr[i])+ 1 ); } else { hash.put(arr[i], 1 ); } } // Loop to find the maximum // Repeated frequency from hash-map int max_count = 0 , res = - 1 ; for (Map.Entry<Integer,Integer> i : hash.entrySet()){ if (max_count < i.getValue()) { res = i.getKey(); max_count = i.getValue(); } } System.out.println( "Frequency " + res+ " is repeated " + max_count+ " times" ); } // Driver Code public static void main(String[] args) { String s = "geeksgeeks" ; // Function Call findMaxFrequency(s); } } // This code is contributed by sapnasingh4991 |
Python3
# Python3 implementation to find the # maximum repeated frequency of # characters in the given string # Function to find the maximum # repeated frequency of the # characters in the given string def findMaxFrequency(s): # Hash-Array to store the # frequency of characters arr = [ 0 ] * 26 # Loop to find the frequency # of the characters for i in range ( len (s)): arr[ ord (s[i]) - ord ( 'a' )] + = 1 # Hash map to store the occurrence # of frequencies of characters hash = {} for i in range ( 26 ): if (arr[i] ! = 0 ): if arr[i] not in hash : hash [arr[i]] = 0 hash [arr[i]] + = 1 # Loop to find the maximum # Repeated frequency from hash-map max_count = 0 res = - 1 for i in hash : if (max_count < hash [i]): res = i max_count = hash [i] print ( "Frequency" , res, "is repeated" , max_count, "times" ) # Driver Code s = "geeksgeeks" # Function Call findMaxFrequency(s) # This code is contributed by shubhamsingh10 |
C #
// C# implementation to find the // maximum repeated frequency of // characters in the given String using System; using System.Collections.Generic; class GFG{ // Function to find the maximum // repeated frequency of the // characters in the given String static void findMaxFrequency(String s) { // Hash-Array to store the // frequency of characters int []arr = new int [26]; // Loop to find the frequency // of the characters for ( int i = 0; i < s.Length; i++) arr[s[i] - 'a' ]++; // Hash map to store the occurrence // of frequencies of characters Dictionary< int , int > hash = new Dictionary< int , int >(); for ( int i = 0; i < 26; i++) if (arr[i] != 0) { if (hash.ContainsKey(arr[i])){ hash[arr[i]] = hash[arr[i]]+1; } else { hash.Add(arr[i], 1); } } // Loop to find the maximum // Repeated frequency from hash-map int max_count = 0, res = -1; foreach ( KeyValuePair< int , int > i in hash){ if (max_count < i.Value) { res = i.Key; max_count = i.Value; } } Console.WriteLine( "Frequency " + res+ " is repeated " + max_count+ " times" ); } // Driver Code public static void Main(String[] args) { String s = "geeksgeeks" ; // Function Call findMaxFrequency(s); } } // This code is contributed by 29AjayKumar |
Частота 2 повторяется 3 раза
Анализ производительности:
- Сложность времени: O (N)
- Вспомогательное пространство: O (N)
Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
Если вы хотите посещать живые занятия с отраслевыми экспертами, пожалуйста, обращайтесь к Geeks Classes Live и Geeks Classes Live USA.