diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-01-19 09:04:02 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-01-19 09:04:02 +0000 |
| commit | e02f0a5d3a2243dffc9cbc127eebed86f3b84b4e (patch) | |
| tree | 0ed37041de826d0432cd16a03ba858ead6794b0d /challenge-096 | |
| parent | bcce0eeb74339b26c8785b078c99adef69f8cb25 (diff) | |
| parent | 2476e0b2f9bd2de0d84b6cebeba317c73f083252 (diff) | |
| download | perlweeklychallenge-club-e02f0a5d3a2243dffc9cbc127eebed86f3b84b4e.tar.gz perlweeklychallenge-club-e02f0a5d3a2243dffc9cbc127eebed86f3b84b4e.tar.bz2 perlweeklychallenge-club-e02f0a5d3a2243dffc9cbc127eebed86f3b84b4e.zip | |
Merge pull request #3320 from pkmnx/branch-for-challenge-96
challenge 96, nums 1 & 2, in raku
Diffstat (limited to 'challenge-096')
| -rwxr-xr-x | challenge-096/pkmnx/raku/ch-1.raku | 23 | ||||
| -rwxr-xr-x | challenge-096/pkmnx/raku/ch-2.raku | 28 |
2 files changed, 51 insertions, 0 deletions
diff --git a/challenge-096/pkmnx/raku/ch-1.raku b/challenge-096/pkmnx/raku/ch-1.raku new file mode 100755 index 0000000000..dd0ac107de --- /dev/null +++ b/challenge-096/pkmnx/raku/ch-1.raku @@ -0,0 +1,23 @@ +#!/usr/bin/env raku + +# see usage: +# +# pk@pkx:~/stuff/raku/perlweeklychallenge-club/challenge-096/pkmnx/raku$ cat poo +# Perl and Raku are part of the same family +# The Weekly Challenge +# pk@pkx:~/stuff/raku/perlweeklychallenge-club/challenge-096/pkmnx/raku$ time ./ch-1a.raku < poo +# Input: $S = " Perl and Raku are part of the same family " +# Output: "family same the of part are Raku and Perl" +# Input: $S = "The Weekly Challenge" +# Output: "Challenge Weekly The" +# +# real 0m0.167s +# user 0m0.174s +# sys 0m0.045s + +sub MAIN() { + for lines() { + printf( "Input: \$S = \"%s\"\n", $_ ); + printf( "Output: \"%s\"\n", $_.words.reverse.join(" ") ); + } +} diff --git a/challenge-096/pkmnx/raku/ch-2.raku b/challenge-096/pkmnx/raku/ch-2.raku new file mode 100755 index 0000000000..9668039a34 --- /dev/null +++ b/challenge-096/pkmnx/raku/ch-2.raku @@ -0,0 +1,28 @@ +#!/usr/bin/env raku + +# +# See as alg directly used from: https://en.wikipedia.org/wiki/Levenshtein_distance +# And see usage: +# +# pk@pkx:~/stuff/raku/perlweeklychallenge-club/challenge-096/pkmnx/raku$ time ./ch-2.raku kitten sitting +# 3 +# real 0m0.339s ... +# pk@pkx:~/stuff/raku/perlweeklychallenge-club/challenge-096/pkmnx/raku$ time ./ch-2.raku sunday monday +# 2 +# real 0m0.359s ... +# + +sub MAIN( Str $S1, Str $S2 ) { + lev( $S1.comb(), $S2.comb() ).say; +} + +sub lev( $a, $b ) { + return $a.elems if $b.elems == 0; + return $b.elems if $a.elems == 0; + return lev( $a.tail($a.elems -1), $b.tail($b.elems -1) ) if $a[0] eq $b[0]; + return 1 + min( + lev( $a.tail($a.elems -1), $b ), + lev( $a, $b.tail($b.elems -1) ), + lev( $a.tail($a.elems -1), $b.tail($b.elems -1) ) + ) +} |
