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
}