diff options
Diffstat (limited to 'challenge-211')
| -rw-r--r-- | challenge-211/robert-dicicco/julia/ch-1.jl | 88 | ||||
| -rw-r--r-- | challenge-211/robert-dicicco/raku/ch-1.raku | 76 | ||||
| -rw-r--r-- | challenge-211/robert-dicicco/ruby/ch-1.rb | 84 |
3 files changed, 248 insertions, 0 deletions
diff --git a/challenge-211/robert-dicicco/julia/ch-1.jl b/challenge-211/robert-dicicco/julia/ch-1.jl new file mode 100644 index 0000000000..23a21f2d70 --- /dev/null +++ b/challenge-211/robert-dicicco/julia/ch-1.jl @@ -0,0 +1,88 @@ +#!/usr/bin/env julia +#= +------------------------------------------- +AUTHOR: Robert DiCicco +DATE : 2023-04-08 +Challenge 211 Toeplitz Matrix ( Julia ) +------------------------------------------- +=# + +using Printf + +matrx = [ [4, 3, 2, 1],[5, 4, 3, 2],[6, 5, 4, 3], ] + +#matrx = [ [1,2,3],[3,2,1] ] + + +rows = length(matrx) +cols = length(matrx[1]) + +r = 1 +c = 1 + +outarr = [] +flag = 0 + +function CheckDiag(o) + global flag + arr_u = unique(o) + if length(arr_u) != 1 + flag = -1 + end +end + +function Diag(c,r) + global rows, cols,outarr + outarr = [] + while r <= rows + push!(outarr,matrx[r][c]) + if r == rows + CheckDiag(outarr) + return + else + if c == cols + CheckDiag(outarr) + break + end + c += 1 + r += 1 + end + end +end + + +function main() + global c, r + @printf("Input: @matrix = %s\n", matrx) + c = 1 + r = 1 + while c <= cols + Diag(c,r) + c = c + 1 + end + + r = 2 + c = 1 + while r <= rows + Diag(c,r) + r = r + 1 + end + flag == -1 ? println("Output: false") : println("Output: true") +end + +main() + +#= +------------------------------------------- +SAMPLE OUTPUT +julia .\Toeplitz.jl +Input: @matrix = [[4, 3, 2, 1], [5, 4, 3, 2], [6, 5, 4, 3]] +Output: true + +julia .\Toeplitz.jl +Input: @matrix = [[1, 2, 3], [3, 2, 1]] +Output: false +------------------------------------------- +=# + + diff --git a/challenge-211/robert-dicicco/raku/ch-1.raku b/challenge-211/robert-dicicco/raku/ch-1.raku new file mode 100644 index 0000000000..2c3a943797 --- /dev/null +++ b/challenge-211/robert-dicicco/raku/ch-1.raku @@ -0,0 +1,76 @@ +#!/usr/bin/env raku +#`{ +------------------------------------------- +AUTHOR: Robert DiCicco +DATE : 2023-04-08 +Challenge 211 Toeplitz Matrix ( Raku ) +------------------------------------------- +} + +my @matrix = [ [4, 3, 2, 1],[5, 4, 3, 2],[6, 5, 4, 3], ]; + +#my @matrix = [ [1,2,3],[3,2,1], ]; + +my $rows = @matrix.elems; +my $cols = @matrix[0].elems; + + +my $r = 0; +my $c = 0; +my @out = (); +my $flag = 0; + +sub CheckDiag(@o) { + if @o.unique.elems != 1 { + $flag = -1; + } +} + +sub Diag($c is copy,$r is copy) { + @out = (); + while $r < $rows { + @out.push: @matrix[$r][$c]; + if $r == $rows - 1 { + CheckDiag(@out); + return; + } else { + if $c == $cols - 1 { + CheckDiag(@out); + last; + } + $c++; + $r++; + } + } +} + +say "Input matrix = ",@matrix; + +$c = 0; +$r = 0; +while $c < $cols - 1 { + Diag($c,$r); + $c++; +} + +$r = 1; +$c = 0; +while $r < $rows - 1 { + Diag($c,$r); + $r++; +} + +$flag == -1 ?? say "Output: false" !! say "Output: true"; + +#`{ +------------------------------------------- +SAMPLE OUTPUT +Input matrix = [[4 3 2 1] [5 4 3 2] [6 5 4 3]] +Output: true + +Input matrix = [[1 2 3] [3 2 1]] +Output: false +------------------------------------------- +} + + diff --git a/challenge-211/robert-dicicco/ruby/ch-1.rb b/challenge-211/robert-dicicco/ruby/ch-1.rb new file mode 100644 index 0000000000..65787744b5 --- /dev/null +++ b/challenge-211/robert-dicicco/ruby/ch-1.rb @@ -0,0 +1,84 @@ +#!/usr/bin/env ruby +=begin +------------------------------------------- +AUTHOR: Robert DiCicco +DATE : 2023-04-08 +Challenge 211 Toeplitz Matrix ( Ruby ) +------------------------------------------- +=end + +$matrx = [ [4, 3, 2, 1],[5, 4, 3, 2],[6, 5, 4, 3], ] + +#$matrx = [ [1,2,3],[3,2,1] ] + +$rows = $matrx.length() +$cols = $matrx[0].length() + + +r = 0 +c = 0 + +outarr = [] +$flag = 0 + +def CheckDiag(o) + arr_u = o.uniq + if arr_u.length() != 1 + $flag = -1 + end +end + +def Diag(c,r) + outarr = [] + while r < $rows + outarr.push($matrx[r][c]) + if r == $rows - 1 + CheckDiag(outarr) + return + else + if c == $cols - 1 + CheckDiag(outarr) + break + end + c += 1 + r += 1 + end + end +end + +puts("Input: @matrix = #{$matrx}") + +c = 0 +r = 0 + +while c < $cols - 1 + Diag(c,r) + c = c + 1 +end + +r = 1 +c = 0 +while r < $rows - 1 + Diag(c,r) + r = r + 1 +end + + +$flag == -1 ? puts("Output: false") : puts("Output: true") + +=begin +------------------------------------------- +SAMPLE OUTPUT +ruby .\Toeplitz.rb +Input: @matrix = [[4, 3, 2, 1], [5, 4, 3, 2], [6, 5, 4, 3]] +Output: true + +ruby .\Toeplitz.rb +Input: @matrix = [[1, 2, 3], [3, 2, 1]] +Output: false +------------------------------------------- + +=end + + + |
