1347. Minimum Number of Steps to Make Two Strings Anagram

Medium

You are given two strings of the same length s and t. In one step you can choose any character of t and replace it with another character.

Return the minimum number of steps to make t an anagram of s.

An Anagram of a string is a string that contains the same characters with a different (or the same) ordering.

Example 1:

Input: s = "bab", t = "aba"
Output:
 1
Explanation:
 Replace the first 'a' in t with b, t = "bba" which is anagram of s.

Example 2:

Input: s = "leetcode", t = "practice"
Output:
 5
Explanation:
 Replace 'p', 'r', 'a', 'i' and 'c' from t with proper characters to make t anagram of s.

Example 3:

Input: s = "anagram", t = "mangaar"
Output:
 0
Explanation:
 "anagram" and "mangaar" are anagrams. 

Constraints:

  • 1 <= s.length <= 5 * 104

  • s.length == t.length

  • s and t consist of lowercase English letters only.

解題

用陣列來記錄兩個單字各個字母出現次數

Runtime: 26 ms, faster than 71.43%

Memory Usage: 6.7 MB, less than 58.73%

func minSteps(s string, t string) int {
    countS := make([]int, 26)
    countT := make([]int, 26)

    for i := 0; i < len(s); i++ {
        countS[s[i] - 'a']++
    }

    for i := 0; i < len(t); i++ {
        countT[t[i] - 'a']++
    }

    ans := 0
    for i := 0; i < len(countS); i++ {
        if countS[i] > countT[i] {
            ans += countS[i] - countT[i]
        }
    }

    return ans
}

Last updated