0%

LeetCode-179

题目

179. 最大数

结果

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
func largestNumber(nums []int) string {
var arr array = nums
sort.Sort(arr)
var buf bytes.Buffer
for _, v := range arr {
buf.WriteString(strconv.Itoa(v))
}
if zeroOnly(buf.String()) {
return "0"
} else {
return buf.String()
}
}

type array []int

func (a array) Len() int {
return len(a)
}

func (a array) Less(i, j int) bool {
x := strconv.Itoa(a[i])
y := strconv.Itoa(a[j])
for i := 0; i < len(x)+len(y); i++ {
if x[i%len(x)] < y[i%len(y)] {
return false
} else if x[i%len(x)] == y[i%len(y)] {
continue
} else {
return true
}
}
return true
}

func max(x, y int) int {
if x > y {
return x
}
return y
}

func (a array) Swap(i, j int) {
a[i], a[j] = a[j], a[i]
}

func zeroOnly(s string) bool {
for _, v := range s {
if v != '0' {
return false
}
}
return true
}