Pistachiout的博客

每天多学一点知识,就少写一行代码

Golange刷题语法笔记

1.二维数组

1
2
3
4
5
6
7
 matrix := make([][]int, m)
for i := range matrix {
matrix[i] = make([]int, n)
}

ans := make([][]int,0)//动态二维数组,初始化或清除所以元素
ans =append(ans,[]int )//添加元素

2.排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
count:=[2002]int{}
arrColne := append([]int{}, arr...)//克隆一个新数组
sort.Ints(count[:])//[2002]int 与[]int 不是一种类型,要先变成切片后再排序
//go语言没有返回数组最小的min函数,需要自己定义

sort.Ints(arr) //从小到大
sort.Sort(sort.Reverse(sort.IntSlice(arr))) //从大到小
sort.Slice(nums, func(i, j int) bool {
return nums[i] > nums[j]
})//自定义排序从大到小

sort.Slice(index, func(i, j int) bool {
a, b := array[index[i]], array[index[j]]
return a < b || (a == b && index[i] < index[j])
})/* array[i] = count
index[i] = i
自定义排序,实现index下标根据arr的值排序*/

3.字符串

1
2
3
4
5
6
7
8
9
10
strings.ContainsAny(str1.str2)//判断str1中是否存在str2
strings.Count(str1, str2)//判断字符串str2在字符串str1中的个数

string('a')//int,字符转字符串
strconv.Atoi() (int, error)//字符串转int
strconv.Itoa()//int转字符串,如需要int每一位值时可使用Itoa+Atoi
bytes:=byte[] str:=string(a)//byte数组转string
str[i]//下标遍历只读,不能修改
strBytes := []byte(str)//修改string,需要将 string 转为 []byte 修改后
unicode.IsDigit(c)//判断是否是字符串

4.遍历

1
2
3
for v:=range arr//v为下标
for _,v:=range arr//v为数值,注意用for each时,若只需要arr[i],一定要在前面加上_,不然返回的是i
next:for {}continue next//在遍历时如果要退出可使用continue退出多重循环

5.位运算

1
x&=x-1//求x二进制中1的个数

6.数组插入

1
2
copy(res[i+1:], res[i:]) 
res[i] = num //将数组下标i后面的copy到下标i+1,然后插入到下标i处
-------------本文结束感谢您的阅读-------------