1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| // @Title: 使两字符串互为字母异位词的最少步骤数 (Minimum Number of Steps to Make Two Strings Anagram II)
// @Author: 15816537946@163.com
// @Date: 2022-02-27 10:46:27
// @Runtime: 176 ms
// @Memory: 7.1 MB
func minSteps(s string, t string) int {
sm := make(map[byte]int)
tm := make(map[byte]int)
var cnt int
for i := range s {
sm[s[i]]++
}
for j := range t {
tm[t[j]]++
}
// fmt.Println(sm)
// fmt.Println(tm)
for k, v1 := range sm {
if v2, ok := tm[k]; ok {
// fmt.Println(k, v1, v2)
cnt += min(v2, v1)
}
}
// fmt.Println(cnt)
return len(s) + len(t) - 2*cnt
}
func min(a, b int) int {
if a > b {
return b
}
return a
}
|