1.运算符:联谊活动
题目要求:
某公司举办了一个联谊活动,现在要统计参加活动人数的单双,如果是单数,返回false,偶数返回true
运行结果示例:
考点:
判断一个数字是单数还是双数,与2取余即可。
ps.Go不支持三目运算符
运行代码示例:
func odevity( x int ) bool {
// write code here
if x % 2 == 0 {
return true
}
return false
}
2.数组:保龄球
题目要求:
小明投了5次保龄球,每次的分数分别为2,5,4,6,5,用一个数组记录这5次分数,然后输出这个数组。
运行结果示例:
考点:
数组的声明方式:// 1.声明一个int类型的数组,数组长度为10,再遍历数组为其赋值 var array1 [10]int for i := 0; i < len(array1); i++ { array1[i] = i } // 2.声明一个int类型的数组,并直接初始化赋值(后面为赋值元素默认为0) var array2 = [10]int{1, 2, 3, 4} // 3.使用:=直接声明并初始化数组 array3 := [4]int{1, 2, 3, 4} // 4.使用...代替数组的长度,编译器会根据元素个数自行推断数组的长度 var array4 = [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0} // 5.指定下标来初始化元素 array5 := [5]float32{1: 2.5, 3: 7.5}
运行代码示例:
func main() {
res := [5]int {2,5,4,6,5}
fmt.Println(res)
}
3.切片:创建切片
题目要求:
创建一个制定长度,容量的int类型切片,设置该切片的每个位置的值等于其索引值,最后返回该切片。
运行结果示例:
考点:
1.切片的创建:使用make关键字城建切片,make([]T, length, capacity)。
2.遍历切片:使用range进行遍历。
运行代码示例:
func makeslice( length int , capacity int ) []int {
// write code here
var slice1 []int = make([]int, length, capacity)
for index,_ := range slice1 {
slice1[index] = index
}
return slice1
}
4.切片:切片复制
题目要求:
给定一个切片和另一个空切片,将第一个切片复制到第二个空切片中,并返回这个被复制的空切片。
运行结果示例:
考点:
向切片中追加元素:
func main(){ //append()为切片追加元素 s1 := []string {"火鸡面","辛拉面","汤达人"} fmt.Printf("s1=%v len(s1)=%d cap(s1)=%d\n",s1,len(s1),cap(s1)) //调用append函数必须用原来的切片变量接收返回值 s1 = append(s1,"小当家") //append动态追加元素,原来的底层数组容纳不下足够多的元素时,切片就会开始扩容,Go底层数组就会把底层数组换一个 fmt.Printf("s1=%v len(s1)=%d cap(s1)=%d\n",s1,len(s1),cap(s1)) //调用append添加一个切片 s2 := []string{"脆司令","圣斗士"} s1 = append(s1,s2...)//...表示拆开切片,再添加 fmt.Printf("s1=%v len(s1)=%d cap(s1)=%d",s1,len(s1),cap(s1)) }
运行代码示例:
func sliceCopy( src []int , des []int ) []int {
// write code here
// des = make([]int, len(src), cap(src))
des = append(des,src...) //...表示拆开切片,再添加
return des
}
5.切片:出队
题目要求:
学生们都排成了一队,有一个切片表示相应学生们的身高,现随机喊某个位置的人出队,返回出队后的这个切片。比如[2,3,4,5],索引为1的位置的出队,出队后切片为[2,4,5]
运行结果示例:
考点:
本题将数组按照index的位置进行拆分,分成两个切片,再将两个切片合并即可。拆分切片直接使用索引值即可,注意范围包括起始位置,不包括结束位置。
运行代码示例:
func deleteElement( s []int , index int ) []int {
// write code here
var s1, s2 []int
// 前包后不包
s1 = s[0:index]
s2 = s[index + 1:]
return append(s1,s2...)
}
6.切片:评委打分
题目要求:
小明参加某个歌唱比赛,评委们进行打分,要求去掉最高分,和最低分,将最高分和最低分依次存入切片并返回。
运行结果示例:
考点:
遍历切片元素并比较大小。
运行代码示例:
func minAndMax( s []int ) []int {
// write code here
var res = []int{s[0], s[0]}
for _,v := range s {
if res[0] > v{
res[0] = v
}
if res[1] < v {
res[1] = v
}
}
return res
}
7.切片:调整顺序
题目要求:
小朋友们依次站成了一排,现要将他们调换顺序,反着排,按照从最右的人站在最左边,倒数最右边的人站在最左边第二个位置,以此类推。比如小朋友的顺序为[1,3,2,3,4,6],重新排列后为[6,4,3,2,3,1]
运行结果示例:
考点:
遍历原始切片为新建的切片倒序赋值。
运行代码示例:
func convert( s []int ) []int {
// write code here
length := len(s)
var res = make([]int, length)
for i:= 0; i <len(s); i++ {
res[length - 1 - i] = s[i]
}
return res
}
8.切片:判断两个切片是否有相同的元素
题目要求:
给定两个切片,判断这两个切片中的元素是否完全一样。
运行结果示例:
考点:
使用for循环遍历切片元素,查看对应位置元素是否相同。
运行代码示例:
func equal( s1 []int , s2 []int ) bool {
// write code here
if len(s1) != len(s2) {
return false
}
for i:= 0; i< len(s1); i++ {
if s1[i] != s2[i] {
return false
}
}
return true
}