40 lines
592 B
Go
40 lines
592 B
Go
package main
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
)
|
|
|
|
func findMarker(line string) int {
|
|
if len(line) < 14 {
|
|
return -1
|
|
}
|
|
for i := 0; i < 14; i++ {
|
|
for j := i + 1; j < 14; j++ {
|
|
if line[i] == line[j] {
|
|
return 1 + findMarker(line[1:])
|
|
}
|
|
}
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func main() {
|
|
file, err := os.Open("./input.txt")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer file.Close()
|
|
scanner := bufio.NewScanner(file)
|
|
for scanner.Scan() {
|
|
line := scanner.Text()
|
|
marker := findMarker(line)
|
|
if marker != -1 {
|
|
fmt.Println(line[marker:marker+14], len(line[:marker+14]))
|
|
break
|
|
}
|
|
}
|
|
}
|