2015 day 8
This commit is contained in:
parent
e5f906dae1
commit
1ae5233c68
40
2015/src/bin/day8.rs
Normal file
40
2015/src/bin/day8.rs
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
use aoc::input;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let lines = input::read_lines();
|
||||||
|
|
||||||
|
// Part 1
|
||||||
|
let mut used_mem = 0;
|
||||||
|
let mut num_chars = 0;
|
||||||
|
for line in &lines {
|
||||||
|
let chars = line.chars().collect::<Vec<char>>();
|
||||||
|
let line_mem = chars.len();
|
||||||
|
let mut line_num_chars = line_mem - 2;
|
||||||
|
let mut index = 1;
|
||||||
|
while index < line_mem - 1 {
|
||||||
|
if chars[index] == '\\' {
|
||||||
|
if chars[index + 1] == '"' || chars[index + 1] == '\\' {
|
||||||
|
line_num_chars -= 1;
|
||||||
|
index += 1;
|
||||||
|
} else if chars[index + 1] == 'x' {
|
||||||
|
line_num_chars -= 3;
|
||||||
|
index += 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
index += 1;
|
||||||
|
}
|
||||||
|
used_mem += line_mem;
|
||||||
|
num_chars += line_num_chars;
|
||||||
|
}
|
||||||
|
println!("{} - {} = {}", used_mem, num_chars, used_mem - num_chars);
|
||||||
|
|
||||||
|
// Part 2
|
||||||
|
let mut encoded_size = used_mem;
|
||||||
|
for line in &lines {
|
||||||
|
for c in line.chars() {
|
||||||
|
if c == '\\' || c == '"' { encoded_size += 1 }
|
||||||
|
}
|
||||||
|
encoded_size += 2; // enclosing quotes
|
||||||
|
}
|
||||||
|
println!("{} - {} = {}", encoded_size, used_mem, encoded_size - used_mem);
|
||||||
|
}
|
Loading…
Reference in a new issue