From 746467d461f6884eec8ac7f8318cb53aca2c11c4 Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Tue, 23 Feb 2021 21:14:30 +0000 Subject: - Added solutions to weeks 42, 44, 93, 94, 96 and 101 by Feng Chang. --- challenge-096/feng-chang/ch-1.raku | 4 ---- challenge-096/feng-chang/ch-2.raku | 27 --------------------------- challenge-096/feng-chang/raku/ch-1.raku | 4 ++++ challenge-096/feng-chang/raku/ch-2.raku | 27 +++++++++++++++++++++++++++ 4 files changed, 31 insertions(+), 31 deletions(-) delete mode 100755 challenge-096/feng-chang/ch-1.raku delete mode 100755 challenge-096/feng-chang/ch-2.raku create mode 100755 challenge-096/feng-chang/raku/ch-1.raku create mode 100755 challenge-096/feng-chang/raku/ch-2.raku (limited to 'challenge-096') diff --git a/challenge-096/feng-chang/ch-1.raku b/challenge-096/feng-chang/ch-1.raku deleted file mode 100755 index a8271c123a..0000000000 --- a/challenge-096/feng-chang/ch-1.raku +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/env raku - -multi MAIN(Str:D $S) { put $S.words.reverse.join(' ') } -multi MAIN(*@S) { MAIN(@S.join(' ')) } diff --git a/challenge-096/feng-chang/ch-2.raku b/challenge-096/feng-chang/ch-2.raku deleted file mode 100755 index a84a74b7d7..0000000000 --- a/challenge-096/feng-chang/ch-2.raku +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/env raku - -sub levenshtein-distance(Str:D $s, Str:D $t) { - my @S = $s.comb; my $m = @S.elems; - my @T = $t.comb; my $n = @T.elems; - - my Array @a = (0 xx ($m+1)).Array xx ($n+1); - @a[0;1..$m] = 1..$m; - @a[1..$n;0] = 1..$n; - - for ^$n -> $j { - for ^@S.elems -> $i { - my $subst-cost = @S[$i] eq @T[$j] ?? 0 !! 1; - - @a[$j+1;$i+1] = min( - @a[$j;$i+1] + 1, # deletion - @a[$j+1;$i] + 1, # insertion - @a[$j;$i] + $subst-cost # substitution - ); - } - } - - @a[$n;$m], @a.item; -} - -put levenshtein-distance('kitten', 'sitting')[0]; -put levenshtein-distance('Saturday', 'Sunday')[0]; diff --git a/challenge-096/feng-chang/raku/ch-1.raku b/challenge-096/feng-chang/raku/ch-1.raku new file mode 100755 index 0000000000..a8271c123a --- /dev/null +++ b/challenge-096/feng-chang/raku/ch-1.raku @@ -0,0 +1,4 @@ +#!/bin/env raku + +multi MAIN(Str:D $S) { put $S.words.reverse.join(' ') } +multi MAIN(*@S) { MAIN(@S.join(' ')) } diff --git a/challenge-096/feng-chang/raku/ch-2.raku b/challenge-096/feng-chang/raku/ch-2.raku new file mode 100755 index 0000000000..a84a74b7d7 --- /dev/null +++ b/challenge-096/feng-chang/raku/ch-2.raku @@ -0,0 +1,27 @@ +#!/bin/env raku + +sub levenshtein-distance(Str:D $s, Str:D $t) { + my @S = $s.comb; my $m = @S.elems; + my @T = $t.comb; my $n = @T.elems; + + my Array @a = (0 xx ($m+1)).Array xx ($n+1); + @a[0;1..$m] = 1..$m; + @a[1..$n;0] = 1..$n; + + for ^$n -> $j { + for ^@S.elems -> $i { + my $subst-cost = @S[$i] eq @T[$j] ?? 0 !! 1; + + @a[$j+1;$i+1] = min( + @a[$j;$i+1] + 1, # deletion + @a[$j+1;$i] + 1, # insertion + @a[$j;$i] + $subst-cost # substitution + ); + } + } + + @a[$n;$m], @a.item; +} + +put levenshtein-distance('kitten', 'sitting')[0]; +put levenshtein-distance('Saturday', 'Sunday')[0]; -- cgit