MST

星途 面试题库

面试题:Go函数签名设计之中等难度题

在Go语言中,设计一个函数签名,该函数接收两个整数切片作为参数,返回这两个切片对应位置元素相加后的新切片,如果两个切片长度不一致,返回长度较短切片对应位置相加后的结果。请写出这个函数签名并简要说明设计思路。
25.5万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试

函数签名

func addSlices(slice1, slice2 []int) []int {
    length := len(slice1)
    if len(slice2) < length {
        length = len(slice2)
    }
    result := make([]int, length)
    for i := 0; i < length; i++ {
        result[i] = slice1[i] + slice2[i]
    }
    return result
}

设计思路

  1. 确定参数:函数接收两个int类型的切片slice1slice2作为参数。
  2. 确定返回值:返回一个int类型的切片,该切片是两个输入切片对应位置元素相加的结果。
  3. 确定长度:由于返回长度较短切片对应位置相加后的结果,所以先比较两个切片的长度,取较短的长度作为循环的次数。
  4. 创建结果切片:根据确定的长度创建一个新的切片用于存储相加的结果。
  5. 遍历相加:通过循环遍历较短的长度,将两个切片对应位置的元素相加,并存储到结果切片中。
  6. 返回结果:最后返回结果切片。