AdventOfCode/day2/src/main.rs
2018-12-02 17:05:17 +01:00

42 lines
960 B
Rust

use std::fs::File;
use std::io::Read;
use std::prelude::v1::Vec;
use std::collections::HashMap;
fn main() {
let mut f = File::open("input").expect("file not found");
let mut contents = String::new();
f.read_to_string(&mut contents).expect("something went wrong reading the file");
let lines: Vec<&str> = contents.split("\n").collect();
println!("{}", count_doubles_and_triples(lines));
}
fn count_doubles_and_triples(lines: Vec<&str>) -> i32 {
let mut doubles = 0;
let mut triples = 0;
for line in lines{
let mut counts = HashMap::new();
for character in line.chars() {
*counts.entry(character).or_insert(0) += 1;
}
if counts.values().any(|&count| count == 2) {
doubles += 1;
}
if counts.values().any(|&count| count == 3) {
triples += 1;
}
}
triples*doubles
}
fn find_common_letters(lines: Vec<&str>) -> Vec<char>{
}