summaryrefslogtreecommitdiff
path: root/aoc7/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'aoc7/src/main.rs')
-rw-r--r--aoc7/src/main.rs95
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]
-}