最大数
给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。
注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。
https://leetcode-cn.com/problems/largest-number/
import (
"sort"
"strconv"
"strings"
)
type Compare []string
func (c Compare) Len() int{
return len(c)
}
func (c Compare) Swap(i, j int) {
c[i], c[j] = c[j], c[i]
}
func (c Compare) Less(i, j int) bool{
return c[i]+c[j] > c[j]+c[i]
}
func largestNumber(nums []int) string {
numsString := make([]string, len(nums))
for i,item := range nums{
numsString[i] = strconv.Itoa(item)
}
sort.Sort(Compare(numsString))
result := ""
for _,item := range numsString{
result += item
}
for result[0] == '0' && len(result) > 1 {
result = strings.TrimPrefix(result,"0")
}
return result
}