import std/[sequtils] const input = readFile("day_06/input.txt") proc isMarker(segment: string): bool {.inline.} = segment.deduplicate == segment proc findMarkerIndex(data: string, markerSize: int): int = let offset = markerSize - 1 for i in offset..input.len-1: if input[i-offset..i].isMarker: return i # How many characters need to be processed before the first start-of-packet marker is detected? proc solvePart1() = echo "Marker: " & $(input.findMarkerIndex(4) + 1) # How many characters need to be processed before the first start-of-message marker is detected? proc solvePart2() = echo "Marker: " & $(input.findMarkerIndex(14) + 1) if isMainModule: solvePart1() solvePart2()