diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2023-04-09 11:26:44 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-09 11:26:44 +0100 |
| commit | ca92a7e5192784f412184ed5b32c978313739eeb (patch) | |
| tree | 8fc8992bde4d6020f3334c6fa4c1ddae3e03772d /challenge-211 | |
| parent | fddb9f40bd8b9a54b85c95f25370a545aada83fc (diff) | |
| parent | d4bacf05e9f6837997f06554a1c6a971d42ae6ad (diff) | |
| download | perlweeklychallenge-club-ca92a7e5192784f412184ed5b32c978313739eeb.tar.gz perlweeklychallenge-club-ca92a7e5192784f412184ed5b32c978313739eeb.tar.bz2 perlweeklychallenge-club-ca92a7e5192784f412184ed5b32c978313739eeb.zip | |
Merge pull request #7863 from spadacciniweb/PWC-211
PWC 211
Diffstat (limited to 'challenge-211')
| -rw-r--r-- | challenge-211/spadacciniweb/go/ch-1.go | 59 | ||||
| -rw-r--r-- | challenge-211/spadacciniweb/perl/ch-1.pl | 53 | ||||
| -rw-r--r-- | challenge-211/spadacciniweb/python/ch-1.py | 43 | ||||
| -rw-r--r-- | challenge-211/spadacciniweb/ruby/ch-1.rb | 40 |
4 files changed, 195 insertions, 0 deletions
diff --git a/challenge-211/spadacciniweb/go/ch-1.go b/challenge-211/spadacciniweb/go/ch-1.go new file mode 100644 index 0000000000..97d6d47354 --- /dev/null +++ b/challenge-211/spadacciniweb/go/ch-1.go @@ -0,0 +1,59 @@ +/* +Task 1: Toeplitz Matrix +Submitted by: Mohammad S Anwar + +You are given a matrix m x n. +Write a script to find out if the given matrix is Toeplitz Matrix. +A matrix is Toeplitz if every diagonal from top-left to bottom-right has the same elements. + + +Example 1 +Input: @matrix = [ [4, 3, 2, 1], + [5, 4, 3, 2], + [6, 5, 4, 3], + ] +Output: true + +Example 2 +Input: @matrix = [ [1, 2, 3], + [3, 2, 1], + ] +Output: false +*/ + +package main + +import ( + "fmt" +) + +func check_toeplitz(m [][]int) bool { + rows := len(m) + cols := len(m[0]) + var dimens int = rows + if (cols < rows) { + dimens = cols + } + val := m[0][0] + for i := 0; i < dimens; i++ { + if m[i][i] != val { + return false + } + } + return true +} + +func main() { + matrix1 := [][]int{ + {4, 3, 2, 1}, + {5, 4, 3, 2}, + {6, 5, 4, 3}, + } + fmt.Println(check_toeplitz(matrix1)) + + matrix2 := [][]int{ + {1, 2, 3}, + {3, 2, 1}, + } + fmt.Println(check_toeplitz(matrix2)) +} diff --git a/challenge-211/spadacciniweb/perl/ch-1.pl b/challenge-211/spadacciniweb/perl/ch-1.pl new file mode 100644 index 0000000000..78e264778b --- /dev/null +++ b/challenge-211/spadacciniweb/perl/ch-1.pl @@ -0,0 +1,53 @@ +#!/usr/bin/env perl + +# Task 1: Toeplitz Matrix +# Submitted by: Mohammad S Anwar +# +# You are given a matrix m x n. +# Write a script to find out if the given matrix is Toeplitz Matrix. +# A matrix is Toeplitz if every diagonal from top-left to bottom-right has the same elements. +# +# +# Example 1 +# Input: @matrix = [ [4, 3, 2, 1], +# [5, 4, 3, 2], +# [6, 5, 4, 3], +# ] +# Output: true +# +# Example 2 +# Input: @matrix = [ [1, 2, 3], +# [3, 2, 1], +# ] +# Output: false + +use strict; +use warnings; +use feature qw/say/; + +sub check_toeplitz { + my $matrix = shift; + my $rows = @$matrix; + my $cols = scalar @{$matrix->[0]}; + my $min = ($rows < $cols) + ? $rows + : $cols; + my $value = $matrix->[0]->[0]; + foreach my $i (0..$min-1) { + return 'false' + unless $matrix->[$i]->[$i] == $value; + } + return 'true'; +} + +my $matrix = [ [4, 3, 2, 1], + [5, 4, 3, 2], + [6, 5, 4, 3], + ]; +say check_toeplitz($matrix); + +$matrix = [ [1, 2, 3], + [3, 2, 1], + ]; +say check_toeplitz($matrix); + diff --git a/challenge-211/spadacciniweb/python/ch-1.py b/challenge-211/spadacciniweb/python/ch-1.py new file mode 100644 index 0000000000..00f663b9f1 --- /dev/null +++ b/challenge-211/spadacciniweb/python/ch-1.py @@ -0,0 +1,43 @@ +# Task 1: Toeplitz Matrix +# Submitted by: Mohammad S Anwar +# +# You are given a matrix m x n. +# Write a script to find out if the given matrix is Toeplitz Matrix. +# A matrix is Toeplitz if every diagonal from top-left to bottom-right has the same elements. +# +# +# Example 1 +# Input: @matrix = [ [4, 3, 2, 1], +# [5, 4, 3, 2], +# [6, 5, 4, 3], +# ] +# Output: true +# +# Example 2 +# Input: @matrix = [ [1, 2, 3], +# [3, 2, 1], +# ] +# Output: false + +import numpy + +def check_toeplitz(matrix): + m = numpy.array(matrix) + dim = min(m.shape) + value = m[0][0] + for i in range(dim): + if m[i][i] != value: + return 'false' + return 'true' + +if __name__ == "__main__": + matrix = [ [4, 3, 2, 1], + [5, 4, 3, 2], + [6, 5, 4, 3], + ] + print(check_toeplitz(matrix)) + + matrix = [ [1, 2, 3], + [3, 2, 1], + ] + print(check_toeplitz(matrix)) diff --git a/challenge-211/spadacciniweb/ruby/ch-1.rb b/challenge-211/spadacciniweb/ruby/ch-1.rb new file mode 100644 index 0000000000..03b84d9ff3 --- /dev/null +++ b/challenge-211/spadacciniweb/ruby/ch-1.rb @@ -0,0 +1,40 @@ +# Task 1: Toeplitz Matrix +# Submitted by: Mohammad S Anwar +# +# You are given a matrix m x n. +# Write a script to find out if the given matrix is Toeplitz Matrix. +# A matrix is Toeplitz if every diagonal from top-left to bottom-right has the same elements. +# +# +# Example 1 +# Input: @matrix = [ [4, 3, 2, 1], +# [5, 4, 3, 2], +# [6, 5, 4, 3], +# ] +# Output: true +# +# Example 2 +# Input: @matrix = [ [1, 2, 3], +# [3, 2, 1], +# ] +# Output: false + +def check_toeplitz(m) + rc = [m.length, m[0].length].min - 1 + val = m[0][0] + (0..rc).each {|e| + return 'false' if m[e][e] != val + } + return 'true' +end + +matrix = [ [4, 3, 2, 1], + [5, 4, 3, 2], + [6, 5, 4, 3], + ] +puts check_toeplitz matrix + +matrix = [ [1, 2, 3], + [3, 2, 1], + ] +puts check_toeplitz matrix |
