diff options
| -rwxr-xr-x | challenge-111/roger-bell-west/perl/ch-1.pl | 37 | ||||
| -rwxr-xr-x | challenge-111/roger-bell-west/perl/ch-2.pl | 22 | ||||
| -rwxr-xr-x | challenge-111/roger-bell-west/python/ch-1.py | 33 | ||||
| -rwxr-xr-x | challenge-111/roger-bell-west/python/ch-2.py | 19 | ||||
| -rwxr-xr-x | challenge-111/roger-bell-west/raku/ch-1.p6 | 34 | ||||
| -rwxr-xr-x | challenge-111/roger-bell-west/raku/ch-2.p6 | 18 | ||||
| -rwxr-xr-x | challenge-111/roger-bell-west/ruby/ch-1.rb | 42 | ||||
| -rwxr-xr-x | challenge-111/roger-bell-west/ruby/ch-2.rb | 21 | ||||
| -rwxr-xr-x | challenge-111/roger-bell-west/rust/ch-1.rs | 41 | ||||
| -rwxr-xr-x | challenge-111/roger-bell-west/rust/ch-2.rs | 30 |
10 files changed, 297 insertions, 0 deletions
diff --git a/challenge-111/roger-bell-west/perl/ch-1.pl b/challenge-111/roger-bell-west/perl/ch-1.pl new file mode 100755 index 0000000000..e60b344d0d --- /dev/null +++ b/challenge-111/roger-bell-west/perl/ch-1.pl @@ -0,0 +1,37 @@ +#! /usr/bin/perl + +use strict; +use warnings; + +use Test::More tests => 2; + +is(sm([[ 1, 2, 3, 5, 7 ], + [ 9, 11, 15, 19, 20 ], + [ 23, 24, 25, 29, 31 ], + [ 32, 33, 39, 40, 42 ], + [ 45, 47, 48, 49, 50 ]],35),0,'example 1'); + +is(sm([[ 1, 2, 3, 5, 7 ], + [ 9, 11, 15, 19, 20 ], + [ 23, 24, 25, 29, 31 ], + [ 32, 33, 39, 40, 42 ], + [ 45, 47, 48, 49, 50 ]],39),1,'example 2'); + +sub sm { + my ($matrix,$search)=@_; + my $f=0; + foreach my $row (@{$matrix}) { + if ($row->[0] <= $search) { + if ($row->[-1] >= $search) { + if (exists {map {$_ => 1} @{$row}}->{$search}) { + $f=1; + } + last; + } + } else { + last; + } + } + return $f; +} + diff --git a/challenge-111/roger-bell-west/perl/ch-2.pl b/challenge-111/roger-bell-west/perl/ch-2.pl new file mode 100755 index 0000000000..0bf05384eb --- /dev/null +++ b/challenge-111/roger-bell-west/perl/ch-2.pl @@ -0,0 +1,22 @@ +#! /usr/bin/perl + +use strict; +use warnings; + +my $ml=0; +my @r; +while (<>) { + chomp; + my $l=length($_); + if ($l >= $ml) { + if (join('',sort split '',$_) eq $_) { + if ($l > $ml) { + @r=(); + $ml=$l; + } + push @r,$_; + } + } +} + +print map{"$_\n"} @r; diff --git a/challenge-111/roger-bell-west/python/ch-1.py b/challenge-111/roger-bell-west/python/ch-1.py new file mode 100755 index 0000000000..37c20999bc --- /dev/null +++ b/challenge-111/roger-bell-west/python/ch-1.py @@ -0,0 +1,33 @@ +#! /usr/bin/python3 + +import unittest + +def sm(matrix,search): + f=0 + for row in matrix: + if row[0] <= search: + if row[len(row)-1] >= search: + if search in row: + f=1 + break + else: + break + return f + +class TestSm(unittest.TestCase): + + def test_ex1(self): + self.assertEqual(sm([[ 1, 2, 3, 5, 7 ], + [ 9, 11, 15, 19, 20 ], + [ 23, 24, 25, 29, 31 ], + [ 32, 33, 39, 40, 42 ], + [ 45, 47, 48, 49, 50 ]],35),0,'example 1'); + + def test_ex2(self): + self.assertEqual(sm([[ 1, 2, 3, 5, 7 ], + [ 9, 11, 15, 19, 20 ], + [ 23, 24, 25, 29, 31 ], + [ 32, 33, 39, 40, 42 ], + [ 45, 47, 48, 49, 50 ]],39),1,'example 2'); + +unittest.main() diff --git a/challenge-111/roger-bell-west/python/ch-2.py b/challenge-111/roger-bell-west/python/ch-2.py new file mode 100755 index 0000000000..d145d4f981 --- /dev/null +++ b/challenge-111/roger-bell-west/python/ch-2.py @@ -0,0 +1,19 @@ +#! /usr/bin/python3 + +import fileinput + +ml=0 +r=list() +for line in fileinput.input(): + l=len(line) + if l >= ml: + line=line.rstrip() + ll=list(line) + if sorted(ll) == ll: + if l > ml: + r=list() + ml=l + r.append(line) + +for l in r: + print(l) diff --git a/challenge-111/roger-bell-west/raku/ch-1.p6 b/challenge-111/roger-bell-west/raku/ch-1.p6 new file mode 100755 index 0000000000..b5d27bc674 --- /dev/null +++ b/challenge-111/roger-bell-west/raku/ch-1.p6 @@ -0,0 +1,34 @@ +#! /usr/bin/perl6 + +use Test; +plan 2; + +is(sm(([ 1, 2, 3, 5, 7 ], + [ 9, 11, 15, 19, 20 ], + [ 23, 24, 25, 29, 31 ], + [ 32, 33, 39, 40, 42 ], + [ 45, 47, 48, 49, 50 ]),35),0,'example 1'); + +is(sm(([ 1, 2, 3, 5, 7 ], + [ 9, 11, 15, 19, 20 ], + [ 23, 24, 25, 29, 31 ], + [ 32, 33, 39, 40, 42 ], + [ 45, 47, 48, 49, 50 ]),39),1,'example 2'); + +sub sm(@matrix,$search) { + my $f=0; + for (@matrix) -> @row { + if (@row[0] <= $search) { + if (@row[*-1] >= $search) { + if ($search ∈ @row) { + $f=1; + } + last; + } + } else { + last; + } + } + return $f; +} + diff --git a/challenge-111/roger-bell-west/raku/ch-2.p6 b/challenge-111/roger-bell-west/raku/ch-2.p6 new file mode 100755 index 0000000000..d3c2d94a08 --- /dev/null +++ b/challenge-111/roger-bell-west/raku/ch-2.p6 @@ -0,0 +1,18 @@ +#! /usr/bin/perl6 + +my $ml=0; +my @r; +for lines() { + my $l=chars($_); + if ($l >= $ml) { + if ($_.comb.sort.join('') eq $_) { + if ($l > $ml) { + @r=(); + $ml=$l; + } + push @r,$_; + } + } +} + +say $_ for @r; diff --git a/challenge-111/roger-bell-west/ruby/ch-1.rb b/challenge-111/roger-bell-west/ruby/ch-1.rb new file mode 100755 index 0000000000..93cbf26a1c --- /dev/null +++ b/challenge-111/roger-bell-west/ruby/ch-1.rb @@ -0,0 +1,42 @@ +#! /usr/bin/ruby + +def sm(matrix,search) + f=0 + matrix.each {|row| + if row[0] <= search then + if row[-1] >= search then + if row.include?(search) then + f=1 + end + break + end + else + break + end + } + return f +end + +require 'test/unit' + +class TestSm < Test::Unit::TestCase + + def test_ex1 + assert_equal(0,sm([[ 1, 2, 3, 5, 7 ], + [ 9, 11, 15, 19, 20 ], + [ 23, 24, 25, 29, 31 ], + [ 32, 33, 39, 40, 42 ], + [ 45, 47, 48, 49, 50 ]],35)) + end + + + def test_ex2 + assert_equal(1,sm([[ 1, 2, 3, 5, 7 ], + [ 9, 11, 15, 19, 20 ], + [ 23, 24, 25, 29, 31 ], + [ 32, 33, 39, 40, 42 ], + [ 45, 47, 48, 49, 50 ]],39)) + end + + +end diff --git a/challenge-111/roger-bell-west/ruby/ch-2.rb b/challenge-111/roger-bell-west/ruby/ch-2.rb new file mode 100755 index 0000000000..0adaf19daf --- /dev/null +++ b/challenge-111/roger-bell-west/ruby/ch-2.rb @@ -0,0 +1,21 @@ +#! /usr/bin/ruby + +ml=0 +r=[] +while line=gets + l=line.length() + line=line.chomp() + if l >= ml then + if line.split('').sort.join('') == line then + if l > ml then + r=[] + ml=l + end + r.push(line) + end + end +end + +r.each {|l| + print "#{l}\n" +} diff --git a/challenge-111/roger-bell-west/rust/ch-1.rs b/challenge-111/roger-bell-west/rust/ch-1.rs new file mode 100755 index 0000000000..0d3d97bbbe --- /dev/null +++ b/challenge-111/roger-bell-west/rust/ch-1.rs @@ -0,0 +1,41 @@ +#! /bin/sh +//usr/bin/env rustc --test $0 -o ${0}x && ./${0}x; rm -f ${0}x ; exit + +#[test] +fn test_ex1() { + assert_eq!(sm(vec![ + vec![1,2,3,5,7], + vec![9,11,15,19,20], + vec![23,24,25,29,31], + vec![32,33,39,40,42], + vec![45,47,48,49,50] + ],35),0); +} + +#[test] +fn test_ex2() { + assert_eq!(sm(vec![ + vec![1,2,3,5,7], + vec![9,11,15,19,20], + vec![23,24,25,29,31], + vec![32,33,39,40,42], + vec![45,47,48,49,50] + ],39),1); +} + +fn sm(matrix: Vec<Vec<u64>>,search: u64) -> u8 { + let mut f=0; + for row in matrix { + if row[0] <= search { + if row[row.len()-1] >= search { + if row.contains(&search) { + f=1; + } + break; + } + } else { + break; + } + } + return f; +} diff --git a/challenge-111/roger-bell-west/rust/ch-2.rs b/challenge-111/roger-bell-west/rust/ch-2.rs new file mode 100755 index 0000000000..a944698628 --- /dev/null +++ b/challenge-111/roger-bell-west/rust/ch-2.rs @@ -0,0 +1,30 @@ +#! /bin/sh +//usr/bin/env rustc $0 -o ${0}x && ./${0}x; rm -f ${0}x ; exit + +use std::io; +use std::io::prelude::*; + +fn main() { + let mut r: Vec<String>=vec![]; + let mut ml: usize=0; + let stdin = io::stdin(); + for li in stdin.lock().lines() { + let line=li.unwrap(); + let l=line.len(); + if l >= ml { + let ll: Vec<char>=line.chars().collect::<Vec<_>>(); + let mut ls=ll.clone(); + ls.sort(); + if ll == ls { + if l > ml { + r=vec![]; + ml=l; + } + r.push(line); + } + } + } + for l in r { + println!("{}",l); + } +} |
