| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- package main
- import (
- "bufio"
- "fmt"
- "io"
- "os"
- )
- func uniq(input io.Reader, output io.Writer) error {
- in := bufio.NewScanner(input)
- var prev string
- for in.Scan() {
- txt := in.Text()
- if txt == prev {
- continue
- }
- if txt < prev {
- return fmt.Errorf("file not sorted")
- }
- prev = txt
- fmt.Fprintln(output, txt)
- }
- return nil
- }
- func main() {
- err := uniq(os.Stdin, os.Stdout)
- if err != nil {
- panic(err.Error())
- }
- /*
- // Вариант с map плох для больших объемов данных
- in := bufio.NewScanner(os.Stdin)
- alreadySeen := make(map[string]bool)
- for in.Scan() {
- txt := in.Text()
- if _, found := alreadySeen[txt]; found {
- continue
- }
- alreadySeen[txt] = true
- fmt.Println(txt)
- }
- */
- }
|