---
# System prepended metadata

title: 2531. Make Number of Distinct Characters Equal
tags: [Hashtable, Leetcode, Python]

---

# 2531. Make Number of Distinct Characters Equal
###### tags: `Python`,`Leetcode`,`Hashtable`
https://leetcode.com/problems/make-number-of-distinct-characters-equal/description/

## MyCode!
```python=
class Solution:
    def isItPossible(self, word1: str, word2: str) -> bool:
        c1 = Counter(word1) 
        # Counter是一個 dict 的子類別，用來對hashable的物件作計算，他在 collection 模組中 
        # 算他 word 中的 Distinct Characters
        c2 = Counter(word2)

        # 把 c1 跟 c2 中的 chr 一個一個交換，當交換到兩個 word 中的 Distinct Characters 數量一樣多就 return True，如果都換完，都沒有什麼結果就 return False
        for ch1 in c1:
            for ch2 in c2:
                new_c1 = c1 - Counter({ch1: 1}) + Counter({ch2: 1})
                new_c2 = c2 + Counter({ch1: 1}) - Counter({ch2: 1})
                if len(new_c1) == len(new_c2): 
                    return True
        return False
```
## 解題思路 ＆ 步驟
### Step 1：算每一個 word 中 Distinct Characters

* Counter是一個 dict 的子類別，用來對hashable的物件作計算，他在 collection 模組中 
![](https://i.imgur.com/DQWlNGE.png)
### Step 2: 把 c1 跟 c2 中的 chr 一個一個交換
![](https://i.imgur.com/tLxwaQA.png)


* c1, c2 =word 1 中的 Distinct Characters, word 2 中的 Distinct Characters
* 當交換到兩個 word 中的 Distinct Characters 數量一樣多就 return True
* 如果都換完，都沒有什麼結果就 return False