- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

# Check if frequency of character in one string is a factor or multiple of frequency of same character in other string in Python

Suppose we have two strings s and t, we have to check whether the occurrences of a character in s is multiple or a factor in t.

So, if the input is like s = "xxyzzw" t = "yyyxxxxzz", then the output will be True as frequency of x in s is 2, and in t is 4, in s y is present only once, but in t there are three y's, there are same number of z in s and t and there is one w in s but not in t.

To solve this, we will follow these steps −

- s_freq := a map with all characters in s and their frequencies
- t_freq := a map with all characters in t and their frequencies
- for each ch in s_freq, do
- if ch not in t_freq, then
- go for next iteration

- if t_freq[ch] is divisible by s_freq[ch] or s_freq[ch] is divisible by t_freq[ch], then
- go for next iteration

- otherwise,
- return False

- if ch not in t_freq, then
- return True

## Example

Let us see the following implementation to get better understanding −

from collections import defaultdict def solve(s, t): s_freq = defaultdict(int) t_freq = defaultdict(int) for i in range(0, len(s)): s_freq[s[i]] += 1 for i in range(0, len(t)): t_freq[t[i]] += 1 for ch in s_freq: if ch not in t_freq: continue if t_freq[ch] % s_freq[ch] == 0 or s_freq[ch] % t_freq[ch] == 0: continue else: return False return True s = "xxyzzw" t = "yyyxxxxzz" print(solve(s, t))

## Input

"xxyzzw", "yyyxxxxzz"

## Output

True

Advertisements