Related Articles

# Check if max occurring character of one string appears same no. of times in other

• Difficulty Level : Basic
• Last Updated : 13 May, 2021

Given two strings, we need to take the character which has the maximum occurrence in the first string, and then we have to check if that particular character is present in the second string the same number of times as it is present in the first string.
Examples:

```Input : s1 = "sssgeek", s2 = "geeksss"
Output : Yes
Max occurring character in s1 is
's'. It occurs same number of times
in s2.

Input :  geekyarticle
gfggfggfg
Output : No```

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

Store counts of characters in the first string and finds the maximum count. Now traverse through the second string and check if the maximum occurring character occurs the same number of times or not.
Below program to illustrate the above problem

## C++

 `// C++ program to check the problem``#include ``using` `namespace` `std;``#define ll long long``#define ASCIISIZE 256` `int` `match(string s1, string s2)``{``    ``// Create array to keep the count of individual``    ``// characters and initialize the array as 0``    ``int` `count[ASCIISIZE] = { 0 };` `    ``// Construct character count array from the input``    ``// string.``    ``for` `(``int` `i = 0; i < s1.length(); i++)``        ``count[s1[i]]++;` `    ``// Count occurrences of maximum occurring character``    ``int` `mx_cnt = 0, mx_chr;``    ``for` `(``int` `i = 0; i < ASCIISIZE; i++) {``        ``if` `(count[i] > mx_cnt) {``            ``mx_cnt = count[i];``            ``mx_chr = i;``        ``}``    ``}` `    ``// look if that character is present, the same``    ``// number of times it is present in second string``    ``for` `(``int` `i = 0; i < s2.length(); i++)``        ``if` `(mx_chr == s2[i])``            ``mx_cnt--;``    ` `    ``// check if sum is greater or equal to number``    ``// return 1``    ``if` `(mx_cnt == 0)``        ``return` `1;``}` `// Driver program to test the above function``int` `main()``{``    ``string s1 = ``"geekforgeeks"``, s2 = ``"geekisgeeky"``;``    ``if` `(match(s1, s2))``        ``cout << ``"Yes "``;``    ``else``        ``cout << ``"No"``;` `    ``return` `0;``}`

## Java

 `// Java program to check the problem``class` `GFG``{``static` `int` `ASCIISIZE = ``256``;``static` `int` `match(String s1,    ``                 ``String s2)``{``// Create array to keep the``// count of individual characters``// and initialize the array as 0``int` `count[] = ``new` `int``[ASCIISIZE];` `// Construct character count``// array from the input string.``char` `[]s3 = s1.toCharArray();``for` `(``int` `i = ``0``; i < s3.length; i++)``    ``count[s3[i]]++;` `// Count occurrences of``// maximum occurring character``int` `mx_cnt = ``0``;``int` `mx_chr = ``0``;``for` `(``int` `i = ``0``; i < ASCIISIZE; i++)``{``    ``if` `(count[i] > mx_cnt)``    ``{``        ``mx_cnt = count[i];``        ``mx_chr = i;``    ``}``}` `// look if that character is``// present, the same number``// of times it is present in``// second string``char` `[]s4 = s2.toCharArray();``for` `(``int` `i = ``0``; i < s4.length; i++)``    ``if` `(mx_chr == s4[i])``        ``mx_cnt--;` `// check if sum is greater or``// equal to number return 1``if` `(mx_cnt == ``0``)``    ``return` `1``;``else``    ``return` `0``;``}` `// Driver Code``public` `static` `void` `main(String[] args)``{``    ``String s1 = ``"geekforgeeks"``,``           ``s2 = ``"geekisgeeky"``;``    ``int` `p = match(s1, s2);``    ``if` `(p == ``1``)``        ``System.out.println(``"Yes "``);``    ``else``        ``System.out.println(``"No"``);``}``}` `// This code is contributed``// by ChitraNayal`

## Python3

 `# Python3 program to``# check the problem` `# define function for Check``# if max occurring character``# of one string appears same``# no. of times in other``def` `match(s1, s2) :` `    ``# declare empty list``    ``count_list ``=` `[]` `    ``# iterate through each``    ``# character of the string``    ``for` `char ``in` `s1 :``        ` `        ``# find occurrence of``        ``# the character``        ``count ``=` `s1.count(char)``        ` `        ``# append tuple value``        ``# to the list``        ``count_list.append((count,char))` `    ``# return tuple of max count``    ``max_occ ``=` `max``(count_list)` `    ``# store max count in mx_cnt``    ``mx_cnt ``=` `max_occ[``0``]` `    ``# store max count``    ``# character in mx_chr``    ``mx_chr ``=` `max_occ[``1``]` `    ``# look if max count character``    ``# is present in s1, the same``    ``# number of times it is present``    ``# in second string s2 or not``    ``# if present return True``    ``# otherwise False.``    ``if` `mx_cnt ``=``=` `s2.count(mx_chr) :``        ``return` `True``    ``else` `:``        ``return` `False` `# Driver Code``if` `__name__ ``=``=` `"__main__"` `:``    ` `    ``s1 ``=` `"geeksforgeeks"``    ``s2 ``=` `"geekisgeeky"` `    ``if` `match(s1,s2) :``        ``print``(``"Yes"``)``    ``else` `:``        ``print``(``"No"``)``        ` `# This code is contributed``# by Ankit Rai`

## C#

 `// C# program to check the problem``using` `System;` `class` `GFG``{``static` `int` `ASCIISIZE = 256;``static` `int` `match(String s1,``                 ``String s2)``{``// Create array to keep the``// count of individual characters``// and initialize the array as 0``int` `[]count = ``new` `int``[ASCIISIZE];` `// Construct character count                                    ``// array from the input string.``for` `(``int` `i = 0; i < s1.Length; i++)``    ``count[s1[i]]++;` `// Count occurrences of``// maximum occurring character``int` `mx_cnt = 0;``int` `mx_chr = 0;``for` `(``int` `i = 0; i < ASCIISIZE; i++)``{``    ``if` `(count[i] > mx_cnt)``    ``{``        ``mx_cnt = count[i];``        ``mx_chr = i;``    ``}``}` `// look if that character is``// present, the same number``// of times it is present``// in second string``for` `(``int` `i = 0; i < s2.Length; i++)``    ``if` `(mx_chr == s2[i])``        ``mx_cnt--;` `// check if sum is greater``// or equal to number return 1``if` `(mx_cnt == 0)``    ``return` `1;``else``    ``return` `0;``}` `// Driver Code``public` `static` `void` `Main()``{``    ``String s1 = ``"geekforgeeks"``,``           ``s2 = ``"geekisgeeky"``;``    ``int` `p = match(s1, s2);``    ``if` `(p == 1)``        ``Console.Write(``"Yes "``);``    ``else``        ``Console.Write(``"No"``);``}``}` `// This code is contributed``// by ChitraNayal`

## Javascript

 ``
Output:
`Yes`

My Personal Notes arrow_drop_up