Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit ccd6862

Browse files
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)

AltStyle によって変換されたページ (->オリジナル) /