43 lines
912 B
Rust
43 lines
912 B
Rust
use itertools::Itertools;
|
|
use std::collections::HashSet;
|
|
use std::error::Error;
|
|
use std::fs::File;
|
|
use std::io::{self, BufRead};
|
|
use std::vec::Vec;
|
|
|
|
fn main() -> Result<(), Box<dyn Error>> {
|
|
let file = File::open("inputs/day6.txt")?;
|
|
let line = io::BufReader::new(file)
|
|
.lines()
|
|
.nth(0)
|
|
.unwrap()
|
|
.unwrap()
|
|
.to_owned();
|
|
|
|
let mut answer1 = 0;
|
|
|
|
for i in 0..line.len() - 4 {
|
|
let set: HashSet<char> = line[i..i + 4].chars().collect();
|
|
if set.len() == 4 {
|
|
answer1 = i + 4;
|
|
break;
|
|
}
|
|
}
|
|
|
|
println!("Answer Part1: {}", answer1);
|
|
|
|
let mut answer2 = 0;
|
|
|
|
for i in 0..line.len() - 14 {
|
|
let set: HashSet<char> = line[i..i + 14].chars().collect();
|
|
if set.len() == 14 {
|
|
answer2 = i + 14;
|
|
break;
|
|
}
|
|
}
|
|
|
|
println!("Answer Part2: {}", answer2);
|
|
|
|
Ok(())
|
|
}
|