aboutsummaryrefslogtreecommitdiff
path: root/challenge-154/abigail
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.freedom.nl>2022-03-03 19:05:40 +0100
committerAbigail <abigail@abigail.freedom.nl>2022-03-03 19:05:40 +0100
commit3b226eda9b2722d6f980773c487463978a83e193 (patch)
treebfa9a5dad3c232eec123ab483b73fdd873f9bd21 /challenge-154/abigail
parent4e5fb477f7bf78115cf2c93f7230c9ef92dd9a1a (diff)
downloadperlweeklychallenge-club-3b226eda9b2722d6f980773c487463978a83e193.tar.gz
perlweeklychallenge-club-3b226eda9b2722d6f980773c487463978a83e193.tar.bz2
perlweeklychallenge-club-3b226eda9b2722d6f980773c487463978a83e193.zip
Week 154: solutions for part 1
Diffstat (limited to 'challenge-154/abigail')
-rw-r--r--challenge-154/abigail/awk/ch-1.awk30
-rw-r--r--challenge-154/abigail/bash/ch-1.sh22
-rw-r--r--challenge-154/abigail/c/ch-1.c44
-rw-r--r--challenge-154/abigail/go/ch-1.go39
-rw-r--r--challenge-154/abigail/java/ch-1.java33
-rw-r--r--challenge-154/abigail/lua/ch-1.lua22
-rw-r--r--challenge-154/abigail/node/ch-1.js20
-rw-r--r--challenge-154/abigail/pascal/ch-1.p40
-rw-r--r--challenge-154/abigail/python/ch-1.py22
-rw-r--r--challenge-154/abigail/r/ch-1.r34
-rw-r--r--challenge-154/abigail/ruby/ch-1.rb23
-rw-r--r--challenge-154/abigail/tcl/ch-1.tcl20
12 files changed, 349 insertions, 0 deletions
diff --git a/challenge-154/abigail/awk/ch-1.awk b/challenge-154/abigail/awk/ch-1.awk
new file mode 100644
index 0000000000..72f7429381
--- /dev/null
+++ b/challenge-154/abigail/awk/ch-1.awk
@@ -0,0 +1,30 @@
+#!/usr/bin/awk
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-154
+#
+
+#
+# Run as: awk -f ch-1.awk < input-file
+#
+
+BEGIN {
+ p ["PERL"] = 1; p ["PELR"] = 1; p ["PREL"] = 1
+ p ["PRLE"] = 1; p ["PLER"] = 1; p ["PLRE"] = 1
+ p ["EPRL"] = 1; p ["EPLR"] = 1; p ["ERPL"] = 1
+ p ["ERLP"] = 1; p ["ELPR"] = 1; p ["ELRP"] = 1
+ p ["REPL"] = 1; p ["RELP"] = 1; p ["RPEL"] = 1
+ p ["RPLE"] = 1; p ["RLEP"] = 1; p ["RLPE"] = 1
+ p ["LERP"] = 1; p ["LEPR"] = 1; p ["LREP"] = 1
+ p ["LRPE"] = 1; p ["LPER"] = 1; p ["LPRE"] = 1
+}
+
+{
+ delete p [$1]
+}
+
+END {
+ for (x in p) {
+ print x
+ }
+}
diff --git a/challenge-154/abigail/bash/ch-1.sh b/challenge-154/abigail/bash/ch-1.sh
new file mode 100644
index 0000000000..7009af780a
--- /dev/null
+++ b/challenge-154/abigail/bash/ch-1.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-154
+#
+
+#
+# Run as: bash ch-1.sh < input-file
+#
+
+set -f
+
+declare -A p
+
+p["PERL"]=1; p["PELR"]=1; p["PREL"]=1; p["PRLE"]=1; p["PLER"]=1; p["PLRE"]=1;
+p["EPRL"]=1; p["EPLR"]=1; p["ERPL"]=1; p["ERLP"]=1; p["ELPR"]=1; p["ELRP"]=1;
+p["REPL"]=1; p["RELP"]=1; p["RPEL"]=1; p["RPLE"]=1; p["RLEP"]=1; p["RLPE"]=1;
+p["LERP"]=1; p["LEPR"]=1; p["LREP"]=1; p["LRPE"]=1; p["LPER"]=1; p["LPRE"]=1;
+
+while read line; do unset "p[$line]"; done
+
+for x in ${!p[@]}; do echo $x; done
diff --git a/challenge-154/abigail/c/ch-1.c b/challenge-154/abigail/c/ch-1.c
new file mode 100644
index 0000000000..644cf4670b
--- /dev/null
+++ b/challenge-154/abigail/c/ch-1.c
@@ -0,0 +1,44 @@
+# include <stdlib.h>
+# include <stdio.h>
+# include <string.h>
+# include <stdbool.h>
+
+/*
+ * See https://theweeklychallenge.org/blog/perl-weekly-challenge-154
+ */
+
+/*
+ * Run as: cc -o ch-1.o ch-1.c; ./ch-1.o < input-file
+ */
+
+int main (void) {
+ char * p [24] = {"PERL", "PELR", "PREL", "PRLE", "PLER", "PLRE",
+ "EPRL", "EPLR", "ERPL", "ERLP", "ELPR", "ELRP",
+ "REPL", "RELP", "RPEL", "RPLE", "RLEP", "RLPE",
+ "LERP", "LEPR", "LREP", "LRPE", "LPER", "LPRE"};
+ bool s [24] = {true, true, true, true, true, true, true, true,
+ true, true, true, true, true, true, true, true,
+ true, true, true, true, true, true, true, true};
+
+ char * line;
+ size_t len;
+
+ while (getline (&line, &len, stdin) != -1) {
+ for (size_t i = 0; i < 24; i ++) {
+ if (strncmp (line, p [i], 4) == 0) {
+ s [i] = false;
+ break;
+ }
+ }
+ }
+
+ for (size_t i = 0; i < 24; i ++) {
+ if (s [i]) {
+ printf ("%s\n", p [i]);
+ }
+ }
+
+ free (line);
+
+ return (0);
+}
diff --git a/challenge-154/abigail/go/ch-1.go b/challenge-154/abigail/go/ch-1.go
new file mode 100644
index 0000000000..3e63646df7
--- /dev/null
+++ b/challenge-154/abigail/go/ch-1.go
@@ -0,0 +1,39 @@
+package main
+
+//
+// See https://theweeklychallenge.org/blog/perl-weekly-challenge-154
+//
+
+//
+// Run as: go run ch-1.go < input-file
+//
+
+import (
+ "fmt"
+ "bufio"
+ "os"
+)
+
+func main () {
+ p := [24] string {
+ "PERL\n", "PELR\n", "PREL\n", "PRLE\n", "PLER\n", "PLRE\n",
+ "EPRL\n", "EPLR\n", "ERPL\n", "ERLP\n", "ELPR\n", "ELRP\n",
+ "REPL\n", "RELP\n", "RPEL\n", "RPLE\n", "RLEP\n", "RLPE\n",
+ "LERP\n", "LEPR\n", "LREP\n", "LRPE\n", "LPER\n", "LPRE\n",
+ };
+ var reader = bufio . NewReader (os. Stdin)
+ for {
+ var text, err = reader . ReadString ('\n')
+ if (err != nil) {
+ break
+ }
+ for i := 0; i < 24; i ++ {
+ if (p [i] == text) {
+ p [i] = ""
+ }
+ }
+ }
+ for _, x := range p {
+ fmt . Print (x)
+ }
+}
diff --git a/challenge-154/abigail/java/ch-1.java b/challenge-154/abigail/java/ch-1.java
new file mode 100644
index 0000000000..a93a8d372e
--- /dev/null
+++ b/challenge-154/abigail/java/ch-1.java
@@ -0,0 +1,33 @@
+//
+// See https://theweeklychallenge.org/blog/perl-weekly-challenge-154
+//
+
+//
+// Run as: ln ch-1.java ch1.java; javac ch1.java; java ch1 < input-file
+//
+
+import java.util.*;
+
+public class ch1 {
+ public static void main (String [] args) {
+ String [] p = {"PERL", "PELR", "PREL", "PRLE", "PLER", "PLRE",
+ "EPRL", "EPLR", "ERPL", "ERLP", "ELPR", "ELRP",
+ "REPL", "RELP", "RPEL", "RPLE", "RLEP", "RLPE",
+ "LERP", "LEPR", "LREP", "LRPE", "LPER", "LPRE"};
+
+ Scanner scanner = new Scanner (System . in);
+ while (scanner . hasNextLine ()) {
+ String line = scanner . nextLine () . trim ();
+ for (int i = 0; i < 24; i ++) {
+ if (p [i] . equals (line)) {
+ p [i] = "";
+ }
+ }
+ }
+ for (int i = 0; i < 24; i ++) {
+ if (p [i] != "") {
+ System . out . println (p [i]);
+ }
+ }
+ }
+}
diff --git a/challenge-154/abigail/lua/ch-1.lua b/challenge-154/abigail/lua/ch-1.lua
new file mode 100644
index 0000000000..2c36a2cf35
--- /dev/null
+++ b/challenge-154/abigail/lua/ch-1.lua
@@ -0,0 +1,22 @@
+#!/opt/local/bin/lua
+
+--
+-- See https://theweeklychallenge.org/blog/perl-weekly-challenge-154
+--
+
+--
+-- Run as: lua ch-1.lua < input-file
+--
+
+local p = {PERL = 1, PELR = 1, PREL = 1, PRLE = 1, PLER = 1, PLRE = 1,
+ EPRL = 1, EPLR = 1, ERPL = 1, ERLP = 1, ELPR = 1, ELRP = 1,
+ REPL = 1, RELP = 1, RPEL = 1, RPLE = 1, RLEP = 1, RLPE = 1,
+ LERP = 1, LEPR = 1, LREP = 1, LRPE = 1, LPER = 1, LPRE = 1,}
+
+for line in io . lines () do
+ p [line] = nil
+end
+
+for key, _ in pairs (p) do
+ print (key)
+end
diff --git a/challenge-154/abigail/node/ch-1.js b/challenge-154/abigail/node/ch-1.js
new file mode 100644
index 0000000000..c823a8a667
--- /dev/null
+++ b/challenge-154/abigail/node/ch-1.js
@@ -0,0 +1,20 @@
+#!/usr/local/bin/node
+
+//
+// See https://theweeklychallenge.org/blog/perl-weekly-challenge-154
+//
+
+//
+// Run as: node ch-1.js < input-file
+//
+
+let p = {PERL: 1, PELR: 1, PREL: 1, PRLE: 1, PLER: 1, PLRE: 1,
+ EPRL: 1, EPLR: 1, ERPL: 1, ERLP: 1, ELPR: 1, ELRP: 1,
+ REPL: 1, RELP: 1, RPEL: 1, RPLE: 1, RLEP: 1, RLPE: 1,
+ LERP: 1, LEPR: 1, LREP: 1, LRPE: 1, LPER: 1, LPRE: 1,}
+
+ require ('readline')
+. createInterface ({input: process . stdin})
+. on ('line', line => {delete p [line . trim ()]})
+. on ('close', () => {Object . keys (p) .
+ forEach ((key) => console . log (key))})
diff --git a/challenge-154/abigail/pascal/ch-1.p b/challenge-154/abigail/pascal/ch-1.p
new file mode 100644
index 0000000000..cf3a06824a
--- /dev/null
+++ b/challenge-154/abigail/pascal/ch-1.p
@@ -0,0 +1,40 @@
+Program ch1;
+
+(* *)
+(* See https://theweeklychallenge.org/blog/perl-weekly-challenge-154 *)
+(* *)
+
+(* *)
+(* Run as: fpc -och-1.out ch-1.p; ./ch-1.out < input-file *)
+(* *)
+
+uses
+ fgl;
+
+var
+ word: string;
+ p1: array [1 .. 24] of string =
+ ('PERL', 'PELR', 'PREL', 'PRLE', 'PLER', 'PLRE',
+ 'EPRL', 'EPLR', 'ERPL', 'ERLP', 'ELPR', 'ELRP',
+ 'REPL', 'RELP', 'RPEL', 'RPLE', 'RLEP', 'RLPE',
+ 'LERP', 'LEPR', 'LREP', 'LRPE', 'LPER', 'LPRE');
+ p: specialize TFPGMap <string, integer>;
+ i: integer;
+
+begin
+ p := specialize TFPGMap <string, integer> . Create;
+ for i := 1 to 24 do begin
+ p . Add (p1 [i], 1)
+ end;
+
+ while not eof do begin
+ readln (word);
+ p . Remove (word);
+ end;
+
+ for i := 1 to 24 do begin
+ if p . IndexOf (p1 [i]) > -1 then begin
+ writeln (p1 [i]);
+ end;
+ end;
+end.
diff --git a/challenge-154/abigail/python/ch-1.py b/challenge-154/abigail/python/ch-1.py
new file mode 100644
index 0000000000..8e19e749c4
--- /dev/null
+++ b/challenge-154/abigail/python/ch-1.py
@@ -0,0 +1,22 @@
+#!/usr/local/bin/python3
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-154
+#
+
+#
+# Run as: python ch-1.py < input-file
+#
+
+import fileinput
+
+p = {"PERL": 1, "PELR": 1, "PREL": 1, "PRLE": 1, "PLER": 1, "PLRE": 1,
+ "EPRL": 1, "EPLR": 1, "ERPL": 1, "ERLP": 1, "ELPR": 1, "ELRP": 1,
+ "REPL": 1, "RELP": 1, "RPEL": 1, "RPLE": 1, "RLEP": 1, "RLPE": 1,
+ "LERP": 1, "LEPR": 1, "LREP": 1, "LRPE": 1, "LPER": 1, "LPRE": 1,}
+
+for line in fileinput . input ():
+ p . pop (line . strip ())
+
+for x in p:
+ print (x)
diff --git a/challenge-154/abigail/r/ch-1.r b/challenge-154/abigail/r/ch-1.r
new file mode 100644
index 0000000000..35ac9dc4cd
--- /dev/null
+++ b/challenge-154/abigail/r/ch-1.r
@@ -0,0 +1,34 @@
+#!/usr/local/bin/Rscript
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-154
+#
+
+#
+# Run as: Rscript ch-1.r < input-file
+#
+
+suppressPackageStartupMessages (
+ library (hash)
+)
+
+p <- hash ()
+p1 <- c ("PERL", "PELR", "PREL", "PRLE", "PLER", "PLRE",
+ "EPRL", "EPLR", "ERPL", "ERLP", "ELPR", "ELRP",
+ "REPL", "RELP", "RPEL", "RPLE", "RLEP", "RLPE",
+ "LERP", "LEPR", "LREP", "LRPE", "LPER", "LPRE")
+
+for (x in p1) {
+ .set (p, x, 1)
+}
+
+stdin <- file ('stdin', 'r')
+repeat {
+ word <- readLines (stdin, n = 1)
+ if (length (word) == 0) {
+ break
+ }
+ del (word, p)
+}
+
+cat (keys (p), "\n")
diff --git a/challenge-154/abigail/ruby/ch-1.rb b/challenge-154/abigail/ruby/ch-1.rb
new file mode 100644
index 0000000000..8ff140834e
--- /dev/null
+++ b/challenge-154/abigail/ruby/ch-1.rb
@@ -0,0 +1,23 @@
+#!/usr/bin/ruby
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-154
+#
+
+#
+# Run as: ruby ch-1.rb < input-file
+#
+
+p = {
+ "PERL" => 1, "PELR" => 1, "PREL" => 1, "PRLE" => 1, "PLER" => 1, "PLRE" => 1,
+ "EPRL" => 1, "EPLR" => 1, "ERPL" => 1, "ERLP" => 1, "ELPR" => 1, "ELRP" => 1,
+ "REPL" => 1, "RELP" => 1, "RPEL" => 1, "RPLE" => 1, "RLEP" => 1, "RLPE" => 1,
+ "LERP" => 1, "LEPR" => 1, "LREP" => 1, "LRPE" => 1, "LPER" => 1, "LPRE" => 1,}
+
+ARGF . each_line do |word|
+ p . delete(word . strip())
+end
+
+p . keys . map do |x|
+ puts (x)
+end
diff --git a/challenge-154/abigail/tcl/ch-1.tcl b/challenge-154/abigail/tcl/ch-1.tcl
new file mode 100644
index 0000000000..b2f455f208
--- /dev/null
+++ b/challenge-154/abigail/tcl/ch-1.tcl
@@ -0,0 +1,20 @@
+#!/usr/local/opt/tcl-tk/bin/tclsh
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-154
+#
+
+#
+# Run as: tclsh ch-1.tcl < input-file
+#
+
+set p [dict create PERL 1 PELR 1 PREL 1 PRLE 1 PLER 1 PLRE 1 \
+ EPRL 1 EPLR 1 ERPL 1 ERLP 1 ELPR 1 ELRP 1 \
+ REPL 1 RELP 1 RPEL 1 RPLE 1 RLEP 1 RLPE 1 \
+ LERP 1 LEPR 1 LREP 1 LRPE 1 LPER 1 LPRE 1]
+
+while {[gets stdin word] >= 0} {
+ dict unset p $word
+}
+
+puts [dict keys $p]