diff options
| author | Abigail <abigail@abigail.freedom.nl> | 2022-03-03 19:05:40 +0100 |
|---|---|---|
| committer | Abigail <abigail@abigail.freedom.nl> | 2022-03-03 19:05:40 +0100 |
| commit | 3b226eda9b2722d6f980773c487463978a83e193 (patch) | |
| tree | bfa9a5dad3c232eec123ab483b73fdd873f9bd21 /challenge-154/abigail | |
| parent | 4e5fb477f7bf78115cf2c93f7230c9ef92dd9a1a (diff) | |
| download | perlweeklychallenge-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.awk | 30 | ||||
| -rw-r--r-- | challenge-154/abigail/bash/ch-1.sh | 22 | ||||
| -rw-r--r-- | challenge-154/abigail/c/ch-1.c | 44 | ||||
| -rw-r--r-- | challenge-154/abigail/go/ch-1.go | 39 | ||||
| -rw-r--r-- | challenge-154/abigail/java/ch-1.java | 33 | ||||
| -rw-r--r-- | challenge-154/abigail/lua/ch-1.lua | 22 | ||||
| -rw-r--r-- | challenge-154/abigail/node/ch-1.js | 20 | ||||
| -rw-r--r-- | challenge-154/abigail/pascal/ch-1.p | 40 | ||||
| -rw-r--r-- | challenge-154/abigail/python/ch-1.py | 22 | ||||
| -rw-r--r-- | challenge-154/abigail/r/ch-1.r | 34 | ||||
| -rw-r--r-- | challenge-154/abigail/ruby/ch-1.rb | 23 | ||||
| -rw-r--r-- | challenge-154/abigail/tcl/ch-1.tcl | 20 |
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] |
