S2
S2 copied to clipboard
0179. Largest Number | LeetCode Cookbook
https://books.halfrost.com/leetcode/ChapterFour/0100~0199/0179.Largest-Number/
...比如:“3” 和 “30” 比较,“30” 比 “3” 的字符序要大,这样...
3 的字符序不是比 30 大嗎?
...比如:“3” 和 “30” 比较,“30” 比 “3” 的字符序要大,这样...
3 的字符序不是比 30 大嗎?
@wagaru (抱歉,回复你慢了。我这个月忙着搬家,现在搬到美国湾区了。)在 go 里面,30 比 3 字符大呢。
啊…你的說對我誤會了
啊…你的說對我誤會了
@wagaru 哈哈,没事没事,有啥问题直接提出来,一起讨论。
借鉴了下思路,beat 100 100:
import (
"bytes"
"math"
"sort"
"strconv"
)
func largestNumber(nums []int) string {
sort.Slice(nums, func(i, j int) bool {
v1, v2 := float64(nums[i]), float64(nums[j])
if v1 == v2 || v1 * v2 == 0 {
return v2 < v1
}
lg1, lg2 := int(math.Log10(v1)), int(math.Log10(v2))
return v2 * math.Pow10(lg1+1) + v1 < v1 * math.Pow10(lg2+1) + v2
})
var buf bytes.Buffer
for _, num := range nums {
if num == 0 && buf.Len() > 0 && buf.Bytes()[0] == '0' {
continue
}
buf.WriteString(strconv.Itoa(num))
}
return buf.String()
}