From a43f38687b52bc6d043f7b7f2094cde68ac821db Mon Sep 17 00:00:00 2001 From: Ishan Jain Date: Wed, 2 Dec 2020 11:46:19 +0530 Subject: [PATCH] Added Day 2 Part 2 --- src/main.rs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/main.rs b/src/main.rs index 0ea16f7..36ac655 100644 --- a/src/main.rs +++ b/src/main.rs @@ -16,15 +16,16 @@ fn main() { let mut policy = policy.split_whitespace(); let limits = policy.next().unwrap(); - let mut limits = limits.split('-'); - let lowerlimit = limits.next().unwrap().parse::().unwrap(); - let upperlimit = limits.next().unwrap().parse::().unwrap(); + let mut positions = limits.split('-'); + let lpos = positions.next().unwrap().parse::().unwrap(); + let rpos = positions.next().unwrap().parse::().unwrap(); - (lowerlimit, upperlimit, chars, pwd) + (lpos, rpos, chars, pwd) }) - .filter(|(lowerlimit, upperlimit, chars, pwd)| { - let count = &pwd.chars().filter(|x| x == chars).count(); - count >= lowerlimit && count <= upperlimit + .filter(|&(lpos, rpos, c, pwd)| { + let pwd: Vec = pwd.chars().collect(); + + (pwd[lpos - 1] == c || pwd[rpos - 1] == c) && (pwd[lpos - 1] != pwd[rpos - 1]) }) .count();