#[path = "../lib.rs"] mod lib; fn get_start(chars: &Vec, len: usize) -> Option { for i in 0..chars.len() { let max = chars.len().min(i + len); let has_repeats = (i..max).any(|a| { return ((a + 1)..max).any(|b| chars[a] == chars[b]); }); if !has_repeats { return Some(i + len); } } return None } fn run(label: &str, len: usize) { for line in lib::iter_input() { let chars = line.chars().collect(); println!("{}: {}", label, get_start(&chars, len).unwrap()); } } fn main() { run("part1", 4); run("part1", 14); }