go语言是静态语言。go语言是一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
给定一个字符串,请将字符串里的字符按照出现的频率降序排列。
func frequencySort(s string) string {
m := make(map[byte]int)
for i := range s {
m[s[i]]++
}
type pair struct {
v byte
cnt int
}
pairs := make([]pair, len(m))
for i, v := range m {
pairs = append(pairs, pair{i, v})
}
sort.Slice(pairs, func(i, j int) bool { return pairs[i].cnt > pairs[j].cnt })
res := make([]byte, 0, len(s))
for _, v := range pairs {
res = append(res, bytes.Repeat([]byte{v.v}, v.cnt)...)
}
return string(res)
}
给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。
func findDisappearedNumbers(nums []int) []int {
var res []int
n := len(nums)
for i := range nums {
mid := (nums[i] - 1) % n
if nums[mid] <= n {
nums[mid] += n
}
}
for i := range nums {
if nums[i] <= n {
res = append(res, i+1)
}
}
return res
}