summary refs log tree commit diff homepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/bin/day04.rs13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/bin/day04.rs b/src/bin/day04.rs
index c6a9709..8e724c2 100644
--- a/src/bin/day04.rs
+++ b/src/bin/day04.rs
@@ -64,15 +64,12 @@ impl Room {
 }
 
 fn rotate(c: char, n: u32) -> char {
-    let mut c = c;
-    for _ in 0..n {
-        c = match c {
-            'a' ... 'y' => (c as u8 + 1) as char,
-            'z' => 'a',
-            _ => panic!("cannot rotate {}", c),
-        }
+    let c = c as u8 + (n % 26) as u8;
+    if c > b'z' {
+        (c - 26) as char
+    } else {
+        c as char
     }
-    c
 }
 
 fn solve1(input: &str) -> u32 {
title='2019-12-19 02:28:40 -0500'>2019-12-19Avoid matching := assignments as tagsJune McEnroe 2019-12-18Hide line numbers when rendering mdocJune McEnroe 2019-12-18Customize cgit CSSJune McEnroe 2019-12-18Use :target rather than :focus pseudo-classJune McEnroe 2019-12-18Copy cgit auxiliary binaries properlyJune McEnroe 2019-12-18Add git.causal.agency cgit configJune McEnroe 2019-12-18Bail from hi if input is binaryJune McEnroe 2019-12-16Post "cgit setup"June McEnroe