Watch
1
0
Fork
You've already forked advent-of-code
0

They're the same function

This commit is contained in:
Jeremy Kaplan 2022-12-05 21:13:04 -08:00
commit c3731062a6

View file

@ -9,28 +9,23 @@ fn main() {
fn part1(input: &str) -> usize { fn part1(input: &str) -> usize {
let sig: Vec<char> = input.trim().chars().collect(); let sig: Vec<char> = input.trim().chars().collect();
find_marker(4, sig)
}
for i in 0..(sig.len()) { fn part2(input: &str) -> usize {
let buf = &sig[i..(i + 4)]; let sig: Vec<char> = input.trim().chars().collect();
if all_different(buf) { find_marker(14, sig)
return i + 4;
}
}
0
} }
fn all_different(c: &[char]) -> bool { fn all_different(c: &[char]) -> bool {
c.iter().cloned().collect::<HashSet<char>>().len() == c.len() c.iter().cloned().collect::<HashSet<char>>().len() == c.len()
} }
fn part2(input: &str) -> usize { fn find_marker(width: usize, v: Vec<char>) -> usize {
let sig: Vec<char> = input.trim().chars().collect(); for i in 0..(v.len()) {
let buf = &v[i..(i + width)];
for i in 0..(sig.len()) {
let buf = &sig[i..(i + 14)];
if all_different(buf) { if all_different(buf) {
return i + 14; return i + width;
} }
} }