From a8851f754e8620a8fc8714f8e5bcc93263abd16b Mon Sep 17 00:00:00 2001 From: Shawn Wagner Date: Mon, 20 Feb 2023 08:46:44 -0800 Subject: Challenge 205.1 in Racket --- challenge-205/shawn-wagner/racket/ch-1.rkt | 46 ++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 challenge-205/shawn-wagner/racket/ch-1.rkt diff --git a/challenge-205/shawn-wagner/racket/ch-1.rkt b/challenge-205/shawn-wagner/racket/ch-1.rkt new file mode 100644 index 0000000000..8cd2fcba41 --- /dev/null +++ b/challenge-205/shawn-wagner/racket/ch-1.rkt @@ -0,0 +1,46 @@ +#lang racket/base + +(require srfi/43) ; For vector-swap! + +(define (vector-partition! vec left right pivot-index list vec)) + (kth-element! (vector-copy vec) 2 >))) + +(define (demo num vec) + (printf "Example ~A: Third highest element of ~S -> ~A~%" num vec (solution vec))) + +(demo 1 #(5 3 4)) +(demo 2 #(5 6)) +(demo 3 #(5 4 4 3)) -- cgit From 3dae1a2b1bbf3762da3599a1d5db9044eace91f2 Mon Sep 17 00:00:00 2001 From: Shawn Wagner Date: Mon, 20 Feb 2023 08:58:30 -0800 Subject: Challenge 205.2 in Racket --- challenge-205/shawn-wagner/racket/ch-2.rkt | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 challenge-205/shawn-wagner/racket/ch-2.rkt diff --git a/challenge-205/shawn-wagner/racket/ch-2.rkt b/challenge-205/shawn-wagner/racket/ch-2.rkt new file mode 100644 index 0000000000..2d8d88e5b8 --- /dev/null +++ b/challenge-205/shawn-wagner/racket/ch-2.rkt @@ -0,0 +1,21 @@ +#lang racket/base + +(require racket/list racket/match) +(define (solution nums) + (for/fold ([num1 -1] + [num2 -1] + [max-xor 0]) + ([pair (in-combinations nums 2)]) + (match-let ([(list p1 p2) pair]) + (let ([xor (bitwise-xor p1 p2)]) + (if (> xor max-xor) + (values p1 p2 xor) + (values num1 num2 max-xor)))))) + +(define (demo n nums) + (let-values ([(n1 n2 xor) (solution nums)]) + (printf "Example ~A: The maximum result of ~A xor ~A = ~A~%" n n1 n2 xor))) + +(demo 1 '(1 2 3 4 5 6 7)) +(demo 2 '(2 4 1 3)) +(demo 3 '(10 5 7 12 8)) -- cgit