题解 | #[NOIP1998]拼数#

技巧:
    单维度套路贪心
思路:
    ------- 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]
        }
    }
}


全部评论

相关推荐

昨天 10:17
门头沟学院 Java
昨天面美团,jvm,juc问的好深啊,感觉小林coding不太够喔,牛油们有没有什么推荐的八股网站嘛🕒&nbsp;岗位/面试时间👥&nbsp;面试题目🤔&nbsp;面试感受
明天不下雨了:小林Coding:https://xiaolincoding.com/ 全栈哥:https://www.pdai.tech/ Guide哥:https://javaguide.cn/ 秀哥:https://interviewguide.cn/ 沉默王二:https://javabetter.cn/home.html 磊哥:https://www.javacn.site/interview/basic/ 小傅哥:https://bugstack.cn/ 源码哥:https://doocs.github.io/source-code-hunter/#/ 各大厂的公众号技术文章和一些经典的书籍
面试太紧张了怎么办?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务