Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,41 @@
|
|||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
type any = interface{}
|
||||
|
||||
func toTree(list []int) any {
|
||||
s := []any{[]any{}}
|
||||
for _, n := range list {
|
||||
for n != len(s) {
|
||||
if n > len(s) {
|
||||
inner := []any{}
|
||||
s[len(s)-1] = append(s[len(s)-1].([]any), inner)
|
||||
s = append(s, inner)
|
||||
} else {
|
||||
s = s[0 : len(s)-1]
|
||||
}
|
||||
}
|
||||
s[len(s)-1] = append(s[len(s)-1].([]any), n)
|
||||
for i := len(s) - 2; i >= 0; i-- {
|
||||
le := len(s[i].([]any))
|
||||
s[i].([]any)[le-1] = s[i+1]
|
||||
}
|
||||
}
|
||||
return s[0]
|
||||
}
|
||||
|
||||
func main() {
|
||||
tests := [][]int{
|
||||
{},
|
||||
{1, 2, 4},
|
||||
{3, 1, 3, 1},
|
||||
{1, 2, 3, 1},
|
||||
{3, 2, 1, 3},
|
||||
{3, 3, 3, 1, 1, 3, 3, 3},
|
||||
}
|
||||
for _, test := range tests {
|
||||
nest := toTree(test)
|
||||
fmt.Printf("%17s => %v\n", fmt.Sprintf("%v", test), nest)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
type any = interface{}
|
||||
|
||||
func toTree(list []int, index, depth int) (int, []any) {
|
||||
var soFar []any
|
||||
for index < len(list) {
|
||||
t := list[index]
|
||||
if t == depth {
|
||||
soFar = append(soFar, t)
|
||||
} else if t > depth {
|
||||
var deeper []any
|
||||
index, deeper = toTree(list, index, depth+1)
|
||||
soFar = append(soFar, deeper)
|
||||
} else {
|
||||
index = index - 1
|
||||
break
|
||||
}
|
||||
index = index + 1
|
||||
}
|
||||
if depth > 1 {
|
||||
return index, soFar
|
||||
}
|
||||
return -1, soFar
|
||||
}
|
||||
|
||||
func main() {
|
||||
tests := [][]int{
|
||||
{},
|
||||
{1, 2, 4},
|
||||
{3, 1, 3, 1},
|
||||
{1, 2, 3, 1},
|
||||
{3, 2, 1, 3},
|
||||
{3, 3, 3, 1, 1, 3, 3, 3},
|
||||
}
|
||||
for _, test := range tests {
|
||||
_, nest := toTree(test, 0, 1)
|
||||
fmt.Printf("%17s => %v\n", fmt.Sprintf("%v", test), nest)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue