题解 | #成绩排序#

成绩排序

https://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b

package main

import (
    "fmt"
    "sort"
)

type Student struct {
    Name string
    Score int
}

func sortStudentByScore(students []Student, orderType int) []Student {
    if orderType == 1 {
        sort.SliceStable(students, func(i, j int) bool {
            return students[i].Score < students[j].Score
        })
    }
    if orderType == 0 {
        sort.SliceStable(students, func(i, j int) bool {
            return students[i].Score > students[j].Score
        })
    }

    return students
}

func main() {
    var n int
    var orderType int

    fmt.Scan(&n, &orderType)

    var students []Student
    for i:=0; i<n; i++ {
        var name string
        var score int
        fmt.Scan(&name, &score)
        students = append(students, Student{Name: name, Score: score})
    }

    sortedStudents := sortStudentByScore(students, orderType)

    for _, student := range sortedStudents {
        fmt.Printf("%s %d\n", student.Name, student.Score)
    }
}
// 本题输入为每行一个字符串和整数,所以采用:fmt.Scan(&name, &score)

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务