diff options
| author | irifkin <ianrifkin@ianrifkin.com> | 2023-10-17 12:47:45 -0400 |
|---|---|---|
| committer | irifkin <ianrifkin@ianrifkin.com> | 2023-10-17 12:47:45 -0400 |
| commit | a0e274e254abd1ab66df85aee3d30a298a1653ba (patch) | |
| tree | c787a8d210060ea467daccf5963c38126f91ed3d /challenge-239 | |
| parent | e1b396d2624e6b1a63d63e8b0fc2ce34cec781be (diff) | |
| download | perlweeklychallenge-club-a0e274e254abd1ab66df85aee3d30a298a1653ba.tar.gz perlweeklychallenge-club-a0e274e254abd1ab66df85aee3d30a298a1653ba.tar.bz2 perlweeklychallenge-club-a0e274e254abd1ab66df85aee3d30a298a1653ba.zip | |
Trying to also do a raku submission
Diffstat (limited to 'challenge-239')
| -rw-r--r-- | challenge-239/ianrifkin/raku/ch-1.raku | 25 | ||||
| -rw-r--r-- | challenge-239/ianrifkin/raku/ch-2.raku | 41 |
2 files changed, 66 insertions, 0 deletions
diff --git a/challenge-239/ianrifkin/raku/ch-1.raku b/challenge-239/ianrifkin/raku/ch-1.raku new file mode 100644 index 0000000000..716f55bd8e --- /dev/null +++ b/challenge-239/ianrifkin/raku/ch-1.raku @@ -0,0 +1,25 @@ +use v6; + +# Task 1: Same String +# Write a script to find out if the word created by concatenating the array elements is the same. + +# Example 1 +my @arr1 = ("ab", "c"); +my @arr2 = ("a", "bc"); +check_equality(join('', @arr1), join('', @arr2)); + +# Example 2 +@arr1 = ("ab", "c"); +@arr2 = ("ac", "b"); +check_equality(join('', @arr1), join('', @arr2)); + +# Example 3 +@arr1 = ("ab", "cd", "e"); +@arr2 = ("abcde"); +check_equality(join('', @arr1), join('', @arr2)); + +sub check_equality { + my ($arr1, $arr2) = @_; + say($arr1 eq $arr2); +} + diff --git a/challenge-239/ianrifkin/raku/ch-2.raku b/challenge-239/ianrifkin/raku/ch-2.raku new file mode 100644 index 0000000000..2d5e99529a --- /dev/null +++ b/challenge-239/ianrifkin/raku/ch-2.raku @@ -0,0 +1,41 @@ +use v6; + +# Task 2: Consistent Strings +# You are given an array of strings and allowed string having distinct characters. +# A string is consistent if all characters in the string appear in the string allowed. + + +# Example 1 +my @str = ("ad", "bd", "aaab", "baa", "badab"); +my $allowed = "ab"; +check_allowed($allowed, @str); + +# Example 2 +@str = ("a", "b", "c", "ab", "ac", "bc", "abc"); +$allowed = "abc"; +check_allowed($allowed, @str); + +# Example 3 +@str = ("cc", "acd", "b", "ba", "bac", "bad", "ac", "d"); +$allowed = "cad"; +check_allowed($allowed, @str); + +sub check_allowed { + my ($allowed, @str) = @_; + my $success_count = 0; + # Loop through each item in array of strings + item_loop: for @str { + # Loop through each character in string to check in allowed list + letters_loop: for $_.comb -> $letter { + LAST if $allowed.contains($letter) { + $success_count++; #increment success if the last letter is in allowed list + } + # try next str item if a letter doesn't match + letters_loop.last unless $allowed.contains($letter); + + # by default if letter matches and isn't last try next letter + } + } + say($success_count); +} + |
