pub fn parse(input: &str) -> (usize, Vec<i8>)Expand description
Convert a 2D grid of ASCII digits into a 1D vec of heights.
Each height is multiplied by 6. For part one this makes no difference, but for part two this helps with the bit manipulation.
To convert from 2D co-ordinates to an index, the formula is y * width + x. For the sample grid
of width 5, the top middle point at (2, 0) is at index 0 * 5 + 2 = 2 and the point directly
below (2, 1) is at index 1 * 5 + 2 = 7.
Using a 1D vec instead of a vec of vecs is faster for 2 reasons:
- Avoids an intermediate pointer lookup for each access.
- Better cache locality as the memory locations are adjacent and not potentially scattered all over the heap.