Redistribute Characters to Make All Strings Equal
1897. Redistribute Characters to Make All Strings Equal
You are given an array of strings words (0-indexed).
In one operation, pick two distinct indices i and j, where words[i] is a non-empty string, and move any character from words[i] to any position in words[j].
Return true if you can make every string in words equal using any number of operations, and false otherwise.
### Example 1:
“`
Input: words = [“ab”,”a”]
Output: false
Explanation: It is impossible to make all the strings equal using the operation.
“`
### Example 2:
“`
Input: s1 = “apple apple”, s2 = “banana”
Output: [“banana”]
“`
Constraints:
“`
1 <= words.length <= 100 1 <= words[i].length <= 100 words[i] consists of lowercase English letters. ```
/** * @param {string[]} words * @return {boolean} */ var makeEqual = function(words) { const getFreqMap = (item) => { const map = new Map(); for(let i = 0; i < item.length; i++) { map.set(item[i], map.has(item[i]) ? map.get(item[i]) + 1 : 1); } return map; } if (words.length === 1) { return true; } const freqMap = getFreqMap(words.join('')); for(const freq of freqMap.values()) { if (freq % words.length !== 0) { return false; } } return true; };