diff options
author | Justin Wernick <justin@worthe-it.co.za> | 2022-04-19 20:22:56 +0200 |
---|---|---|
committer | Justin Wernick <justin@worthe-it.co.za> | 2022-04-19 20:23:15 +0200 |
commit | 174772b5b8d9f5bf5e3c8e8152adfd89f0e83f6b (patch) | |
tree | a003b748ee939b30a2bcd3caf2378228baa304c1 /aoc7/src | |
parent | fd75b3fb95ad049b0025cb8fc0b3459b8f872d61 (diff) |
Refile for merging repos
Diffstat (limited to 'aoc7/src')
-rw-r--r-- | aoc7/src/main.rs | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/aoc7/src/main.rs b/aoc7/src/main.rs deleted file mode 100644 index 254f23d..0000000 --- a/aoc7/src/main.rs +++ /dev/null @@ -1,95 +0,0 @@ -use std::io::BufReader; -use std::io::prelude::*; -use std::fs::File; - -fn main() { - let lines = read_file(); - let mut ssl_count = 0; - for line in lines { - let mut in_squares = false; - let mut char_buffer = [' '; 3]; - - let mut abas = Vec::new(); - let mut babs = Vec::new(); - - let mut chars = line.chars(); - char_buffer[0] = chars.next().unwrap(); - char_buffer[1] = chars.next().unwrap(); - char_buffer[2] = chars.next().unwrap(); - if is_aba(char_buffer) { - if in_squares { - babs.push(char_buffer); - } else { - abas.push(char_buffer); - } - } - - for c in chars { - match c { - '[' => {in_squares = true;}, - ']' => {in_squares = false;}, - _ => {} - } - char_buffer[0] = char_buffer[1]; - char_buffer[1] = char_buffer[2]; - char_buffer[2] = c; - - if is_aba(char_buffer) { - if in_squares { - babs.push(char_buffer); - } else { - abas.push(char_buffer); - } - } - } - - //println!("ABA {:?}", abas); - //println!("BAB {:?}", babs); - - let mut is_ssl = false; - for aba in &abas { - for bab in &babs { - is_ssl = is_ssl || correspond(aba.clone(), bab.clone()); - } - } - - //println!("Is SSL? {}", is_ssl); - - if is_ssl { - ssl_count += 1; - } - } - println!("SSL_count: {}", ssl_count); -} - -fn read_file() -> Vec<String> { - let file = BufReader::new(File::open("input.txt").unwrap()); - file.lines() - .map(|line| line.unwrap().trim().to_string()) - .filter(|line| line.len() > 0) - .collect() -} - -fn is_abba(char_buffer: [char; 4]) -> bool { - char_buffer[0] != char_buffer[1] && - char_buffer[0] == char_buffer[3] && - char_buffer[1] == char_buffer[2] && - char_buffer[0] != ']' && - char_buffer[1] != ']' && - char_buffer[0] != '[' && - char_buffer[1] != '[' -} - -fn is_aba(char_buffer: [char; 3]) -> bool { - char_buffer[0] != char_buffer[1] && - char_buffer[0] == char_buffer[2] && - char_buffer[0] != ']' && - char_buffer[1] != ']' && - char_buffer[0] != '[' && - char_buffer[1] != '[' -} - -fn correspond(aba: [char; 3], bab: [char; 3]) -> bool { - //assumes both follow the aba pattern, so [0] == [2] - aba[0] == bab[1] && aba[1] == bab[0] -} |