【Leetcode】python - [2186] Minimum Number of Steps to Make Two Strings Anagram II 個人解法筆記 (內含範例程式碼)

題目出處

weekly-contest-282

2186. Minimum Number of Steps to Make Two Strings Anagram II

難度

Medium

題目分類

個人範例程式碼

class Solution:
    def minSteps(self, s: str, t: str) -> int:
        ans = len(s) + len(t)
        for same_word in (set(s) & set(t)):
            ans -= min(Counter(s)[same_word], Counter(t)[same_word])*2 # two side skip step

        return ans

Time Complexity

O(n)

算法說明

最大步數為 len(s) + len(t),我們再去看要減少多少就好。
統計每個字元後,用 set 取「交集」,找出重複的字元數量

corner case 特殊情況處理

x

Boundary conditions/ Edge conditions 邊際情況處理

  • 注意:因為兩組字母是雙向的減少步驟,因此在減少步數時「需要*2

Reference