aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchallenge-115/roger-bell-west/perl/ch-1.pl7
-rwxr-xr-xchallenge-115/roger-bell-west/python/ch-1.py9
-rwxr-xr-xchallenge-115/roger-bell-west/raku/ch-1.p67
-rwxr-xr-xchallenge-115/roger-bell-west/ruby/ch-1.rb9
-rwxr-xr-xchallenge-115/roger-bell-west/rust/ch-1.rs12
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;