Given two strings, the task is to check whether the frequencies of a character(for each character) in one string is a multiple or a factor in another string. If it is, then output “YES”, otherwise output “NO”.
Input: s1 = “aabccd”, s2 = “bbbaaaacc”
Frequency of ‘a’ in s1 and s2 are 2 and 4 respectively, and 2 is a factor of 4
Frequency of ‘b’ in s1 and s2 are 1 and 3 respectively, and 1 is a factor of 3
Frequency of ‘c’ in s1 and s2 are same hence it also satisfies.
Frequency of ‘d’ in s1 and s2 are 1 and 0 respectively, but 0 is a multiple of every number, hence satisfied.
Hence, the answer YES.
Input: s1 = “hhdwjwqq”, s2 = “qwjdddhhh”
- Store frequency of characters in s1 in first map STL.
- Store frequency of characters in s2 in second map STL.
- Let the frequency of a character in first map be F1. Let us also assume the frequency of this character in second map is F2.
- Check F1%F2 and F2%F1(modulo operation). If either of them is 0, then the condition is satisfied.
- Check it for all the characters.
Below is the implementation of the above approach:
// C# implementation of the approach
// Function that checks if the
// frequency of character are
// a factor or multiple of each other
public static Boolean multipleOrFactor(String s1,
// map store frequency of each character
for (int i = 0; i < s1.Length; i++)
var x = m1[s1[i]];
for (int i = 0; i < s2.Length; i++)
var x = m2[s2[i]];
// if any frequency is 0, then continue
// as condition is satisfied
// if factor or multiple, then condition satified
if (m2[entry.Key] != 0 &&
(m2[entry.Key] % entry.Value == 0 ||
entry.Value % m2[entry.Key] == 0))
// if condition not satisfied
// Driver code
public static void Main(String args)
String s1 = “geeksforgeeks”, s2 = “geeks”;
if (multipleOrFactor(s1, s2))
// This code is contributed by PrinciRaj1992
- Check if the frequency of any character is more than half the length of the string
- Longest sub-string having frequency of each character less than equal to k
- Character whose frequency is equal to the sum of frequencies of other characters of the given string
- Rearrange the given string such that all prime multiple indexes have same character
- Check if a string has all characters with same frequency with one variation allowed
- Print number of words, vowels and frequency of each character
- Check whether frequency of characters in a string makes Fibonacci Sequence
- Replace every character of string by character whose ASCII value is K times more than it
- Find a string such that every character is lexicographically greater than its immediate next character
- Check if both halves of the string have at least one different character
- Map every character of one string to another such that all occurrences are mapped to the same character
- Check whether the Average Character of the String is present or not
- Check if a two character string can be made using given words
- Python | Check order of character in string using OrderedDict( )
- Check if max occurring character of one string appears same no. of times in other
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. 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.