mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-05 00:25:22 +08:00
45 lines
2.3 KiB
Go
45 lines
2.3 KiB
Go
package models
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
// UserInfo define
|
|
type UserInfo struct {
|
|
UserName string `json:"user_name"`
|
|
NumSolved int32 `json:"num_solved"`
|
|
NumTotal int32 `json:"num_total"`
|
|
AcEasy int32 `json:"ac_easy"`
|
|
AcMedium int32 `json:"ac_medium"`
|
|
AcHard int32 `json:"ac_hard"`
|
|
EasyTotal int32
|
|
MediumTotal int32
|
|
HardTotal int32
|
|
OptimizingEasy int32
|
|
OptimizingMedium int32
|
|
OptimizingHard int32
|
|
FrequencyHigh int32 `json:"frequency_high"`
|
|
FrequencyMid int32 `json:"frequency_mid"`
|
|
CategorySlug string `json:"category_slug"`
|
|
}
|
|
|
|
// | | Easy | Medium | Hard | Total | optimizing |
|
|
// |:--------:|:--------------------------------------------------------------|:--------:|:--------:|:--------:|:--------:|
|
|
func (ui UserInfo) table() string {
|
|
res := "| | Easy | Medium | Hard | Total |\n"
|
|
res += "|:--------:|:--------:|:--------:|:--------:|:--------:|\n"
|
|
res += fmt.Sprintf("|Optimizing|%v|%v|%v|%v|\n", ui.OptimizingEasy, ui.OptimizingMedium, ui.OptimizingHard, ui.OptimizingEasy+ui.OptimizingMedium+ui.OptimizingHard)
|
|
res += fmt.Sprintf("|Accepted|**%v**|**%v**|**%v**|**%v**|\n", ui.AcEasy, ui.AcMedium, ui.AcHard, ui.AcEasy+ui.AcMedium+ui.AcHard)
|
|
res += fmt.Sprintf("|Total|%v|%v|%v|%v|\n", ui.EasyTotal, ui.MediumTotal, ui.HardTotal, ui.EasyTotal+ui.MediumTotal+ui.HardTotal)
|
|
res += fmt.Sprintf("|Perfection Rate|%.1f%%|%.1f%%|%.1f%%|%.1f%%|\n", (1-float64(ui.OptimizingEasy)/float64(ui.AcEasy))*100, (1-float64(ui.OptimizingMedium)/float64(ui.AcMedium))*100, (1-float64(ui.OptimizingHard)/float64(ui.AcHard))*100, (1-float64(ui.OptimizingEasy+ui.OptimizingMedium+ui.OptimizingHard)/float64(ui.AcEasy+ui.AcMedium+ui.AcHard))*100)
|
|
res += fmt.Sprintf("|Completion Rate|%.1f%%|%.1f%%|%.1f%%|%.1f%%|\n", float64(ui.AcEasy)/float64(ui.EasyTotal)*100, float64(ui.AcMedium)/float64(ui.MediumTotal)*100, float64(ui.AcHard)/float64(ui.HardTotal)*100, float64(ui.AcEasy+ui.AcMedium+ui.AcHard)/float64(ui.EasyTotal+ui.MediumTotal+ui.HardTotal)*100)
|
|
// 加这一行是为了撑开整个表格
|
|
res += "|------------|----------------------------|----------------------------|----------------------------|----------------------------|"
|
|
return res
|
|
}
|
|
|
|
// PersonalData define
|
|
func (ui UserInfo) PersonalData() string {
|
|
return ui.table()
|
|
}
|