题解 | #简单错误记录#
简单错误记录
https://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb
package main import ( "bufio" "fmt" "os" "strconv" "strings" ) type Err struct { Data string Rows string Count int } func main() { scanner := bufio.NewScanner(os.Stdin) var arr []Err //数组保证顺序 m := make(map[string]int) //用来判断是否重复d for scanner.Scan() { split := strings.Split(scanner.Text(), " ") text := strings.Split(split[0], "\\") var file string num := split[1] if len(text[len(text)-1]) >= 16 { start := len(text[len(text)-1]) - 16 file = text[len(text)-1][start:] } else { file = text[len(text)-1] } if Position, Ok := m[file+num]; Ok { arr[Position].Count++ } else { /* if arr == nil { m[file+num] = 1 } else { m[file+num] = len(arr) }*/ m[file+num] = len(arr) arr = append(arr, Err{ Data: file, Rows: num, Count: 1, }) } } if len(arr) > 8 { arr = arr[len(arr)-8:] } for i := range arr { fmt.Println(arr[i].Data + " " + arr[i].Rows + " " + strconv.Itoa(arr[i].Count)) } }