aboutsummaryrefslogtreecommitdiff
path: root/challenge-115/roger-bell-west/python
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-115/roger-bell-west/python')
-rwxr-xr-xchallenge-115/roger-bell-west/python/ch-1.py43
-rwxr-xr-xchallenge-115/roger-bell-west/python/ch-2.py37
2 files changed, 80 insertions, 0 deletions
diff --git a/challenge-115/roger-bell-west/python/ch-1.py b/challenge-115/roger-bell-west/python/ch-1.py
new file mode 100755
index 0000000000..04f265e13b
--- /dev/null
+++ b/challenge-115/roger-bell-west/python/ch-1.py
@@ -0,0 +1,43 @@
+#! /usr/bin/python3
+
+import unittest
+
+from collections import defaultdict
+
+def sc(*n):
+ m=list()
+ i=defaultdict(list)
+ for t in n:
+ m.append(t[-1])
+ i[t[0]].append(len(m)-1)
+ chain=list([[0]])
+ while len(chain)>0:
+ stub=chain.pop()
+ v=set(range(len(n)))
+ for x in stub:
+ v.remove(x)
+ 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.append(x)
+ chain.append(s)
+ else:
+ return 1
+ return 0
+
+class TestSc(unittest.TestCase):
+
+ def test_ex1(self):
+ self.assertEqual(sc('abc','dea','cd'),1,'example 1')
+
+ def test_ex2(self):
+ self.assertEqual(sc('ade','cbd','fgh'),0,'example 2')
+
+ def test_ex3(self):
+ self.assertEqual(sc('abc','dea','fgh','hif'),0,'example 3')
+
+ def test_ex4(self):
+ self.assertEqual(sc('abc','dec','cfa','cgd'),1,'example 4')
+
+unittest.main()
diff --git a/challenge-115/roger-bell-west/python/ch-2.py b/challenge-115/roger-bell-west/python/ch-2.py
new file mode 100755
index 0000000000..97a2409d51
--- /dev/null
+++ b/challenge-115/roger-bell-west/python/ch-2.py
@@ -0,0 +1,37 @@
+#! /usr/bin/python3
+
+import unittest
+
+def lm(*n):
+ o=list(n)
+ o.sort()
+ ff=[i for i in range(len(o)) if o[i] % 2 == 0]
+ if len(ff)==0:
+ return 0
+ i=ff[0]
+ ox=list()
+ ox.append(o[i])
+ if i>0:
+ for j in range(i):
+ ox.append(o[j])
+ if i+1<len(o):
+ for j in range(i+1,len(o)):
+ ox.append(o[j])
+ ox.reverse()
+ return int(''.join(str(i) for i in ox))
+
+class TestSc(unittest.TestCase):
+
+ def test_ex1(self):
+ self.assertEqual(lm(1,0,2,6),6210,"example 1")
+
+ def test_ex2(self):
+ self.assertEqual(lm(1,4,2,8),8412,"example 2")
+
+ def test_ex3(self):
+ self.assertEqual(lm(4,1,7,6),7614,"example 3")
+
+ def test_ex4(self):
+ self.assertEqual(lm(1,3,5,7),0,"example 4")
+
+unittest.main()