From 7ff38a457561aceded276ef0c456fbd4cb495783 Mon Sep 17 00:00:00 2001 From: harveyshao Date: Mon, 20 Feb 2023 20:38:11 +0800 Subject: [PATCH] opt some --- src/hi/sku.go | 4 ++++ src/sku.go | 25 +++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 src/hi/sku.go create mode 100644 src/sku.go diff --git a/src/hi/sku.go b/src/hi/sku.go new file mode 100644 index 00000000..8a5fb71b --- /dev/null +++ b/src/hi/sku.go @@ -0,0 +1,4 @@ +package hi + +func init() { +} diff --git a/src/sku.go b/src/sku.go new file mode 100644 index 00000000..c6668757 --- /dev/null +++ b/src/sku.go @@ -0,0 +1,25 @@ +package main + +import "fmt" + +func helper(chunks [][]string, chunkIndex int, prev []string, res [][]string) [][]string { + chunk := chunks[chunkIndex] + isLast := chunkIndex == len(chunks)-1 + for _, val := range chunk { + if cur := append(prev, val); isLast { + res = append(res, cur) + } else { + res = helper(chunks, chunkIndex+1, cur, res) + } + } + return res +} +func combine(chunks ...[]string) (res [][]string) { + return helper(chunks, 0, []string{}, res) +} +func main() { + names := []string{"iPhone X", "iPhone XS"} + colors := []string{"黑色", "白色"} + storage := []string{"64g", "256g"} + fmt.Println(combine(names, colors, storage)) +}