技巧:
单维度套路贪心
思路:
------- A , B ------- (A在前和B在前不会影响到前后的最优策略)
那么什么情况A在前呢? ====> A + B > B + A
实现:
package main
import "fmt"
func main() {
// 参数接收
var n int
fmt.Scan(&n)
arr := make([]string, n)
for i := 0; i < n; i++{
fmt.Scan(&arr[i])
}
if n == 0{
fmt.Println("")
}else {
ans := ""
sort(arr)
for i := 0; i < n; i++ {
ans += arr[i]
}
fmt.Println(ans)
}
}
// (a + b) > (b + a) => true
func compare(a, b string)bool{
var1, var2 := a + b, b + a
for i := 0; i < len(var2); i++ {
if var1[i] < var2[i] {
return false
}else if var1[i] > var2[i] {
return true
}
}
return false
}
// 插入排序
func sort(arr []string) {
for i := 1; i< len(arr); i++ {
for j := i; j > 0 && compare(arr[j],arr[j - 1]); j-- {
arr[j],arr[j - 1] = arr[j - 1],arr[j]
}
}
} 
京公网安备 11010502036488号