use std::error::Error; use std::fs::File; use std::io::{self, BufRead}; fn find_sequence(line: &str, len: usize) -> usize { let mut answer = 0; for i in 0..line.len() - len { let mut set1 = 0u32; let mut repeated = false; for c in line[i..i + len].chars() { let bit = 1 << (c as u32 - 'a' as u32); if bit & set1 == 0 { set1 |= bit; } else { repeated = true; break; } } if !repeated { answer = i + len; break; } } return answer; } fn main() -> Result<(), Box> { let file = File::open("inputs/day6.txt")?; let line = io::BufReader::new(file) .lines() .nth(0) .unwrap() .unwrap() .to_owned(); let answer1 = find_sequence(&line, 4); println!("Answer Part1: {}", answer1); let answer2 = find_sequence(&line, 14); println!("Answer Part2: {}", answer2); Ok(()) }