我正在尝试在我的主要函数中为以下代码编写一个测试用例,该代码用于查找嵌套数组的乘积和总和:
package main
import "fmt"
type SpecialArray []interface{}
func ProductSum(array SpecialArray) int {
return helper(array, 1)
}
func helper(array SpecialArray, multiplier int) int {
sum := 0
for _, el := range array {
if cast, ok := el.(SpecialArray); ok {
sum += helper(cast, multiplier + 1)
} else if cast, ok := el.(int); ok {
sum += cast
}
}
return sum * multiplier
}
给定一个混合了整数和数组的嵌套数组,上面的代码应该返回所有元素的总和。嵌套数组中的元素将被相加,然后乘以它们的深度,即
[1, [2, 3], 2] = 1 + 2(2+3) + 2 = 13
我无法理解 SpecialArray []interface{} 类型。我的第一次尝试是在我的 main 函数中简单地定义一个嵌套切片,如下所示:
func main() {
SpecialArray := [][]int{1, {2, 3}, 2}
result := ProductSum(SpecialArray)
fmt.Println(result)
}
但这是行不通的。我假设我需要用值初始化我的 SpecialArray 接口并将其传递给我的 ProductSum 函数。
翻阅古今
相关分类