Skip to content

Commit ccd6862

Browse files
committed
feat: update golang solution to lc problem: No. 0451.Sort Characters By Frequency
1 parent ccb5dd2 commit ccd6862

File tree

3 files changed

+77
-0
lines changed

3 files changed

+77
-0
lines changed

solution/0400-0499/0451.Sort Characters By Frequency/README.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,34 @@ class Solution {
117117
}
118118
```
119119

120+
### **Go**
121+
122+
用结构体排序进行模拟
123+
124+
```go
125+
type pair struct {
126+
b byte
127+
cnt int
128+
}
129+
130+
func frequencySort(s string) string {
131+
freq := make(map[byte]int)
132+
for _, r := range s {
133+
freq[byte(r)]++
134+
}
135+
a := make([]pair, 0)
136+
for k, v := range freq {
137+
a = append(a, pair{b: k, cnt: v})
138+
}
139+
sort.Slice(a, func(i, j int) bool { return a[i].cnt > a[j].cnt })
140+
var sb strings.Builder
141+
for _, p := range a {
142+
sb.Write(bytes.Repeat([]byte{p.b}, p.cnt))
143+
}
144+
return sb.String()
145+
}
146+
```
147+
120148
### **...**
121149

122150
```

solution/0400-0499/0451.Sort Characters By Frequency/README_EN.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,34 @@ class Solution {
101101
}
102102
```
103103

104+
### **Go**
105+
106+
Simulation with structure sorting.
107+
108+
```go
109+
type pair struct {
110+
b byte
111+
cnt int
112+
}
113+
114+
func frequencySort(s string) string {
115+
freq := make(map[byte]int)
116+
for _, r := range s {
117+
freq[byte(r)]++
118+
}
119+
a := make([]pair, 0)
120+
for k, v := range freq {
121+
a = append(a, pair{b: k, cnt: v})
122+
}
123+
sort.Slice(a, func(i, j int) bool { return a[i].cnt > a[j].cnt })
124+
var sb strings.Builder
125+
for _, p := range a {
126+
sb.Write(bytes.Repeat([]byte{p.b}, p.cnt))
127+
}
128+
return sb.String()
129+
}
130+
```
131+
104132
### **...**
105133

106134
```
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
type pair struct {
2+
b byte
3+
cnt int
4+
}
5+
6+
func frequencySort(s string) string {
7+
freq := make(map[byte]int)
8+
for _, r := range s {
9+
freq[byte(r)]++
10+
}
11+
a := make([]pair, 0)
12+
for k, v := range freq {
13+
a = append(a, pair{b: k, cnt: v})
14+
}
15+
sort.Slice(a, func(i, j int) bool { return a[i].cnt > a[j].cnt })
16+
var sb strings.Builder
17+
for _, p := range a {
18+
sb.Write(bytes.Repeat([]byte{p.b}, p.cnt))
19+
}
20+
return sb.String()
21+
}

0 commit comments

Comments
 (0)