diff options
| author | Roger Bell_West <roger@firedrake.org> | 2021-06-02 14:17:44 +0100 |
|---|---|---|
| committer | Roger Bell_West <roger@firedrake.org> | 2021-06-02 14:17:44 +0100 |
| commit | c22b8f2b58f51e5e567cbc1bb8f88ec285ed7ab5 (patch) | |
| tree | 35fd18e45e199cdb49a6a7c42307d93cbd575b1a | |
| parent | 6de8e1d6d1a0bad84322be07ecf04d202b2e50ed (diff) | |
| download | perlweeklychallenge-club-c22b8f2b58f51e5e567cbc1bb8f88ec285ed7ab5.tar.gz perlweeklychallenge-club-c22b8f2b58f51e5e567cbc1bb8f88ec285ed7ab5.tar.bz2 perlweeklychallenge-club-c22b8f2b58f51e5e567cbc1bb8f88ec285ed7ab5.zip | |
Challenge #115 bugfix for part 1
| -rwxr-xr-x | challenge-115/roger-bell-west/perl/ch-1.pl | 7 | ||||
| -rwxr-xr-x | challenge-115/roger-bell-west/python/ch-1.py | 9 | ||||
| -rwxr-xr-x | challenge-115/roger-bell-west/raku/ch-1.p6 | 7 | ||||
| -rwxr-xr-x | challenge-115/roger-bell-west/ruby/ch-1.rb | 9 | ||||
| -rwxr-xr-x | challenge-115/roger-bell-west/rust/ch-1.rs | 12 |
5 files changed, 35 insertions, 9 deletions
diff --git a/challenge-115/roger-bell-west/perl/ch-1.pl b/challenge-115/roger-bell-west/perl/ch-1.pl index 55218babb2..3b8adfd49a 100755 --- a/challenge-115/roger-bell-west/perl/ch-1.pl +++ b/challenge-115/roger-bell-west/perl/ch-1.pl @@ -3,12 +3,13 @@ use strict; use warnings; -use Test::More tests => 4; +use Test::More tests => 5; is(sc(qw(abc dea cd)),1,'example 1'); is(sc(qw(ade cbd fgh)),0,'example 2'); is(sc(qw(abc dea fgh hif)),0,'example 3'); is(sc(qw(abc dec cfa cgd)),1,'example 4'); +is(sc(qw(abc def cd)),0,'example 5'); sub sc { my @n=@_; @@ -31,7 +32,9 @@ sub sc { } } } else { - return 1; + if (exists $i{$m[$stub->[-1]]} && $i{$m[$stub->[-1]]}[0]==0) { + return 1; + } } } return 0; diff --git a/challenge-115/roger-bell-west/python/ch-1.py b/challenge-115/roger-bell-west/python/ch-1.py index 04f265e13b..55ad96dc95 100755 --- a/challenge-115/roger-bell-west/python/ch-1.py +++ b/challenge-115/roger-bell-west/python/ch-1.py @@ -3,6 +3,7 @@ import unittest from collections import defaultdict +import copy def sc(*n): m=list() @@ -19,11 +20,12 @@ def sc(*n): if len(v)>0: if m[stub[-1]] in i: for x in filter (lambda y: y in v, i[m[stub[-1]]]): - s=stub + s=copy.copy(stub) s.append(x) chain.append(s) else: - return 1 + if m[stub[-1]] in i and i[m[stub[-1]]][0]==0: + return 1 return 0 class TestSc(unittest.TestCase): @@ -40,4 +42,7 @@ class TestSc(unittest.TestCase): def test_ex4(self): self.assertEqual(sc('abc','dec','cfa','cgd'),1,'example 4') + def test_ex5(self): + self.assertEqual(sc('abc','def','cd'),0,'example 1') + unittest.main() diff --git a/challenge-115/roger-bell-west/raku/ch-1.p6 b/challenge-115/roger-bell-west/raku/ch-1.p6 index 5594dc7dfd..c4e13b4bc7 100755 --- a/challenge-115/roger-bell-west/raku/ch-1.p6 +++ b/challenge-115/roger-bell-west/raku/ch-1.p6 @@ -2,12 +2,13 @@ use Test; -plan 4; +plan 5; is(sc('abc','dea','cd'),1,'example 1'); is(sc('ade','cbd','fgh'),0,'example 2'); is(sc('abc','dea','fgh','hif'),0,'example 3'); is(sc('abc','dec','cfa','cgd'),1,'example 4'); +is(sc('abc','def','cd'),0,'example 5'); sub sc(**@n) { my @m; @@ -37,7 +38,9 @@ sub sc(**@n) { } } } else { - return 1; + if (%i{@m[@stub[*-1]]}:exists && %i{@m[@stub[*-1]]}[0]==0) { + return 1; + } } } return 0; diff --git a/challenge-115/roger-bell-west/ruby/ch-1.rb b/challenge-115/roger-bell-west/ruby/ch-1.rb index 1eb4ad336b..e372537fd7 100755 --- a/challenge-115/roger-bell-west/ruby/ch-1.rb +++ b/challenge-115/roger-bell-west/ruby/ch-1.rb @@ -26,13 +26,15 @@ def sc(*n) if i.has_key?(m[stub[-1]]) then x=i[m[stub[-1]]].find_all {|x| v.include?(x)} x.each {|xx| - s=stub + s=stub.dup s.push(xx) chain.push(s) } end else - return 1 + if i.has_key?(m[stub[-1]]) and i[m[stub[-1]]][0]==0 then + return 1 + end end end return 0 @@ -52,5 +54,8 @@ class TestSc < Test::Unit::TestCase def test_ex4 assert_equal(1,sc('abc','dec','cfa','cgd')) end + def test_ex5 + assert_equal(0,sc('abc','def','cd')) + end end diff --git a/challenge-115/roger-bell-west/rust/ch-1.rs b/challenge-115/roger-bell-west/rust/ch-1.rs index 856f46fbcb..fd82c0be13 100755 --- a/challenge-115/roger-bell-west/rust/ch-1.rs +++ b/challenge-115/roger-bell-west/rust/ch-1.rs @@ -23,6 +23,11 @@ fn test_ex4() { assert_eq!(sc(vec!["abc","dec","cfa","cgd"]),1); } +#[test] +fn test_ex5() { + assert_eq!(sc(vec!["abc","def","cd"]),0); +} + fn sc (n: Vec<&str>) -> i8 { let mut m: Vec<String>=vec![]; let mut i: HashMap<String,Vec<usize>>=HashMap::new(); @@ -57,7 +62,12 @@ fn sc (n: Vec<&str>) -> i8 { } } } else { - return 1; + if i.contains_key(&m[stub[stub.len()-1]]) { + let xx=i.get(&m[stub[stub.len()-1]]).unwrap(); + if xx[0]==0 { + return 1; + } + } } } return 0; |
