go: add «179. Largest Number»
Signed-off-by: Matej Focko <me@mfocko.xyz>
This commit is contained in:
parent
12f5d72bf2
commit
40da3403da
1 changed files with 29 additions and 0 deletions
29
go/largest-number.go
Normal file
29
go/largest-number.go
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"cmp"
|
||||||
|
"slices"
|
||||||
|
"strconv"
|
||||||
|
)
|
||||||
|
|
||||||
|
func largestNumber(nums []int) string {
|
||||||
|
numbers := make([]string, len(nums))
|
||||||
|
for i, num := range nums {
|
||||||
|
numbers[i] = strconv.Itoa(num)
|
||||||
|
}
|
||||||
|
|
||||||
|
slices.SortFunc(numbers, func(a, b string) int {
|
||||||
|
return cmp.Compare(b+a, a+b)
|
||||||
|
})
|
||||||
|
|
||||||
|
if numbers[0] == "0" {
|
||||||
|
return "0"
|
||||||
|
}
|
||||||
|
|
||||||
|
largest := ""
|
||||||
|
for _, number := range numbers {
|
||||||
|
largest += number
|
||||||
|
}
|
||||||
|
|
||||||
|
return largest
|
||||||
|
}
|
Loading…
Reference in a new issue