diff --git a/ch1/dup1.go b/ch1/dup1.go new file mode 100644 index 0000000..dabc822 --- /dev/null +++ b/ch1/dup1.go @@ -0,0 +1,28 @@ +// Dup1 выводит текст каждой строки, которая появляется +// в стандартном выводе более одного раза, а также +// колличество её появлений. +package main + +import ( + "bufio" + "fmt" + "os" +) + +func main() { + counts := make(map[string]int) + input := bufio.NewScanner(os.Stdin) + for input.Scan() { + counts[input.Text()]++ + // Тоже самое можно записать как: + // line := input.Text() + // counts[line] = counts[line] + 1 + } + // Примечание: игнорируем потенциальные + // ошибки из input.Err() + for line, n := range counts { + if n > 1 { + fmt.Printf("%d\t%s\n", n, line) + } + } +}