diff options
| author | deadmarshal <adeadmarshal@gmail.com> | 2023-10-18 21:48:51 +0330 |
|---|---|---|
| committer | deadmarshal <adeadmarshal@gmail.com> | 2023-10-18 21:48:51 +0330 |
| commit | 74d32165e22ba78426bb61ccd79e600d2546f956 (patch) | |
| tree | f9fddcbb8de333c794992dc50cdbbb80e0be110e /challenge-239 | |
| parent | eb89c85d8f90b18bb075d6bc49e009e38294ad39 (diff) | |
| download | perlweeklychallenge-club-74d32165e22ba78426bb61ccd79e600d2546f956.tar.gz perlweeklychallenge-club-74d32165e22ba78426bb61ccd79e600d2546f956.tar.bz2 perlweeklychallenge-club-74d32165e22ba78426bb61ccd79e600d2546f956.zip | |
TWC239
Diffstat (limited to 'challenge-239')
| -rw-r--r-- | challenge-239/deadmarshal/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-239/deadmarshal/cl/ch1.lisp | 10 | ||||
| -rw-r--r-- | challenge-239/deadmarshal/cl/ch2.lisp | 15 | ||||
| -rw-r--r-- | challenge-239/deadmarshal/haskell/ch1.hs | 11 | ||||
| -rw-r--r-- | challenge-239/deadmarshal/haskell/ch2.hs | 14 | ||||
| -rw-r--r-- | challenge-239/deadmarshal/lua/ch-1.lua | 12 | ||||
| -rw-r--r-- | challenge-239/deadmarshal/lua/ch-2.lua | 21 | ||||
| -rw-r--r-- | challenge-239/deadmarshal/perl/ch-1.pl | 12 | ||||
| -rw-r--r-- | challenge-239/deadmarshal/perl/ch-2.pl | 17 | ||||
| -rw-r--r-- | challenge-239/deadmarshal/raku/ch-1.raku | 11 | ||||
| -rw-r--r-- | challenge-239/deadmarshal/raku/ch-2.raku | 11 | ||||
| -rw-r--r-- | challenge-239/deadmarshal/ruby/ch1.rb | 10 | ||||
| -rw-r--r-- | challenge-239/deadmarshal/ruby/ch2.rb | 16 |
13 files changed, 161 insertions, 0 deletions
diff --git a/challenge-239/deadmarshal/blog.txt b/challenge-239/deadmarshal/blog.txt new file mode 100644 index 0000000000..13b2144464 --- /dev/null +++ b/challenge-239/deadmarshal/blog.txt @@ -0,0 +1 @@ +https://deadmarshal.blogspot.com/2023/10/twc239.html diff --git a/challenge-239/deadmarshal/cl/ch1.lisp b/challenge-239/deadmarshal/cl/ch1.lisp new file mode 100644 index 0000000000..70cb1ebadd --- /dev/null +++ b/challenge-239/deadmarshal/cl/ch1.lisp @@ -0,0 +1,10 @@ +(defun same-string (list1 list2) + (let ((s1 (format nil "~{~A~}" list1)) + (s2 (format nil "~{~A~}" list2))) + (string= s1 s2))) + +(progn + (print (same-string '("ab" "c") '("a" "bc"))) + (print (same-string '("ab" "c") '("ac" "b"))) + (print (same-string '("ab" "cd" "e") '("abcde")))) + diff --git a/challenge-239/deadmarshal/cl/ch2.lisp b/challenge-239/deadmarshal/cl/ch2.lisp new file mode 100644 index 0000000000..3e8053c666 --- /dev/null +++ b/challenge-239/deadmarshal/cl/ch2.lisp @@ -0,0 +1,15 @@ +(defun consistent-strings (list allowed) + (let ((count 0)) + (loop :for e :in list + :do (if (every #'(lambda (c) (position c allowed)) e) + (incf count))) + count)) + +(progn + (print (consistent-strings + '("ad" "bd" "aaab" "baa" "badab") "ab")) + (print (consistent-strings + '("a" "b" "c" "ab" "ac" "bc" "abc") "abc")) + (print (consistent-strings + '("cc" "acd" "b" "ba" "bac" "bad" "ac" "d") "cad"))) + diff --git a/challenge-239/deadmarshal/haskell/ch1.hs b/challenge-239/deadmarshal/haskell/ch1.hs new file mode 100644 index 0000000000..e6abb6943c --- /dev/null +++ b/challenge-239/deadmarshal/haskell/ch1.hs @@ -0,0 +1,11 @@ +module Ch1 where + +sameString :: [String] -> [String] -> Bool +sameString xs ys = concat xs == concat ys + +main :: IO () +main = do + print $ sameString ["ab","c"] ["a","bc"] + print $ sameString ["ab","c"] ["ac","b"] + print $ sameString ["ab","cd","e"] ["abcde"] + diff --git a/challenge-239/deadmarshal/haskell/ch2.hs b/challenge-239/deadmarshal/haskell/ch2.hs new file mode 100644 index 0000000000..2b5a26f6ee --- /dev/null +++ b/challenge-239/deadmarshal/haskell/ch2.hs @@ -0,0 +1,14 @@ +module Ch2 where + +consistentStrings :: [String] -> String -> Int +consistentStrings xs allowed = + length $ filter (==True) $ map (\s -> cond s) xs + where + cond s = all (\c -> elem c allowed) s + +main :: IO () +main = do + print $ consistentStrings ["ad","bd","aaab","baa","badab"] "ab" + print $ consistentStrings ["a","b","c","ab","ac","bc","abc"] "abc" + print $ consistentStrings ["cc","acd","b","ba","bac","bad","ac","d"] "cad" + diff --git a/challenge-239/deadmarshal/lua/ch-1.lua b/challenge-239/deadmarshal/lua/ch-1.lua new file mode 100644 index 0000000000..3b441d8019 --- /dev/null +++ b/challenge-239/deadmarshal/lua/ch-1.lua @@ -0,0 +1,12 @@ +#!/usr/bin/env lua + +local function same_string(t1,t2) + assert(type(t1) == 'table' and + type(t2) == 'table','t1,t2 must be tables!') + return table.concat(t1) == table.concat(t2) +end + +print(same_string({"ab","c"},{"a","bc"})) +print(same_string({"ab","c"},{"ac","b"})) +print(same_string({"ab","cd","e"},{"abcde"})) + diff --git a/challenge-239/deadmarshal/lua/ch-2.lua b/challenge-239/deadmarshal/lua/ch-2.lua new file mode 100644 index 0000000000..e4c7d15181 --- /dev/null +++ b/challenge-239/deadmarshal/lua/ch-2.lua @@ -0,0 +1,21 @@ +#!/usr/bin/env lua + +local function consistent_strings(t,allowed) + assert(type(t) == 'table' and type(allowed) == 'string', + 't,allowed must be a table and string respectively!') + local count = 0 + for i=1,#t do + local temp = true + for j=1,#t[i] do + if not allowed:match(t[i]:sub(j,j)) then temp = false break end + end + if temp == true then count = count + 1 end + end + return count +end + +print(consistent_strings({'ad','bd','aaab','baa','badab'},'ab')) +print(consistent_strings({'a','b','c','ab','ac','bc','abc'},'aabc')) +print(consistent_strings({'cc','acd','b','ba','bac','bad','ac','d'}, + 'cad')) + diff --git a/challenge-239/deadmarshal/perl/ch-1.pl b/challenge-239/deadmarshal/perl/ch-1.pl new file mode 100644 index 0000000000..1a64cadf25 --- /dev/null +++ b/challenge-239/deadmarshal/perl/ch-1.pl @@ -0,0 +1,12 @@ +#!/usr/bin/env perl +use strict; +use warnings; + +sub same_string{ + join('',@{$_[0]}) eq join('',@{$_[1]}); +} + +printf "%d\n",same_string(["ab","c"],["a","bc"]); +printf "%d\n",same_string(["ab","c"],["ac","b"]); +printf "%d\n",same_string(["ab","cd","e"],["abcde"]); + diff --git a/challenge-239/deadmarshal/perl/ch-2.pl b/challenge-239/deadmarshal/perl/ch-2.pl new file mode 100644 index 0000000000..fab83860c4 --- /dev/null +++ b/challenge-239/deadmarshal/perl/ch-2.pl @@ -0,0 +1,17 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use List::Util qw(all); + +sub consistent_strings{ + my ($arr,$allowed) = @_; + scalar grep{all{index($allowed,$_) != -1} split '',$_} @$arr; +} + +printf "%d\n",consistent_strings(['ad','bd','aaab','baa','badab'], + 'ab'); +printf "%d\n",consistent_strings(['a','b','c','ab','ac','bc','abc'], + 'abc'); +printf "%d\n",consistent_strings(['cc','acd','b','ba','bac','bad', + 'ac','d'],'cad'); + diff --git a/challenge-239/deadmarshal/raku/ch-1.raku b/challenge-239/deadmarshal/raku/ch-1.raku new file mode 100644 index 0000000000..80f65c85fe --- /dev/null +++ b/challenge-239/deadmarshal/raku/ch-1.raku @@ -0,0 +1,11 @@ +#!/usr/bin/env raku + +sub same-string(@arr1,@arr2) +{ + @arr1.join eq @arr2.join +} + +say same-string(["ab","c"],["a","bc"]); +say same-string(["ab","c"],["ac","b"]); +say same-string(["ab","cd","e"],["abcde"]); + diff --git a/challenge-239/deadmarshal/raku/ch-2.raku b/challenge-239/deadmarshal/raku/ch-2.raku new file mode 100644 index 0000000000..d2e1901c34 --- /dev/null +++ b/challenge-239/deadmarshal/raku/ch-2.raku @@ -0,0 +1,11 @@ +#!/usr/bin/env raku + +sub consistent-strings(@arr,$allowed) +{ + (@arr.map:{$_.comb (<=) $allowed.comb}).grep({$_ == True}).elems +} + +say consistent-strings(['ad','bd','aaab','baa','badab'],'ab'); +say consistent-strings(['a','b','c','ab','ac','bc','abc'],'abc'); +say consistent-strings(['cc','acd','b','ba','bac','bad','ac','d'], + 'cad'); diff --git a/challenge-239/deadmarshal/ruby/ch1.rb b/challenge-239/deadmarshal/ruby/ch1.rb new file mode 100644 index 0000000000..7dc06819f8 --- /dev/null +++ b/challenge-239/deadmarshal/ruby/ch1.rb @@ -0,0 +1,10 @@ +#!/usr/bin/env ruby + +def same_string(arr1,arr2) + arr1.join == arr2.join +end + +p same_string(["ab","c"],["a","bc"]) +p same_string(["ab","c"],["ac","b"]) +p same_string(["ab","cd","e"],["abcde"]) + diff --git a/challenge-239/deadmarshal/ruby/ch2.rb b/challenge-239/deadmarshal/ruby/ch2.rb new file mode 100644 index 0000000000..16e99d4a49 --- /dev/null +++ b/challenge-239/deadmarshal/ruby/ch2.rb @@ -0,0 +1,16 @@ +#!/usr/bin/env ruby + +def consistent_strings(arr,allowed) + count = 0 + arr.each do |str| + if str.split('').all? {|c| allowed.include?(c)} then + count += 1 + end + end + count +end + +p consistent_strings(['ad','bd','aaab','baa','badab'],'ab') +p consistent_strings(['a','b','c','ab','ac','bc','abc'],'abc') +p consistent_strings(['cc','acd','b','ba','bac','bad','ac','d'],'cad'); + |
