Bandera tricolor en Go
This commit is contained in:
31
src/Go/003.go
Normal file
31
src/Go/003.go
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"sort"
|
||||||
|
)
|
||||||
|
|
||||||
|
var ORDER = []string{"R", "A", "M"}
|
||||||
|
|
||||||
|
func tricolor_flag(lst []string) []string {
|
||||||
|
result := append([]string(nil), lst...) // copy (like Python sorted)
|
||||||
|
order := make(map[string]int, len(ORDER))
|
||||||
|
for i, v := range ORDER {
|
||||||
|
order[v] = i
|
||||||
|
}
|
||||||
|
|
||||||
|
sort.SliceStable(result, func(i int, j int) bool {
|
||||||
|
return order[result[i]] < order[result[j]]
|
||||||
|
})
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
check := []string{"M","R","A","A","R","R","A","M","M"}
|
||||||
|
fmt.Println(tricolor_flag(check)) // [R,R,R,A,A,A,M,M,M]
|
||||||
|
|
||||||
|
check = []string{"M", "R", "A", "R", "R", "A"}
|
||||||
|
fmt.Println(tricolor_flag(check)) // [R,R,R,A,A,M]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user