From 93e729872243499407d495846097b5d6488d94ea Mon Sep 17 00:00:00 2001 From: Roger Bell_West Date: Mon, 12 Oct 2020 14:11:02 +0100 Subject: Solutions for challenge 82. --- challenge-082/roger-bell-west/python/ch-2.py | 37 ++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100755 challenge-082/roger-bell-west/python/ch-2.py (limited to 'challenge-082/roger-bell-west/python/ch-2.py') diff --git a/challenge-082/roger-bell-west/python/ch-2.py b/challenge-082/roger-bell-west/python/ch-2.py new file mode 100755 index 0000000000..4b88c1acf0 --- /dev/null +++ b/challenge-082/roger-bell-west/python/ch-2.py @@ -0,0 +1,37 @@ +#! /usr/bin/python3 + +import unittest +from collections import deque + +def isinterleave(a,b,c): + l=list(map(len,(a,b,c))) + buf=deque() + buf.append([0,0,0]) + while (buf): + n=buf.popleft() + if (n[2] >= l[2]): + return 1 + if ((n[0] < l[0]) and (a[n[0]] == c[n[2]])): + buf.append([n[0]+1,n[1],n[2]+1]) + if ((n[1] < l[1]) and (b[n[1]] == c[n[2]])): + buf.append([n[0],n[1]+1,n[2]+1]) + return 0 + +class TestInterleave(unittest.TestCase): + + def test_ex1(self): + self.assertEqual(isinterleave('XY','X','XXY'),1,'example 1') + + def test_ex2(self): + self.assertEqual(isinterleave('XXY','XXZ','XXXXZY'),1,'example 2') + + def test_ex3(self): + self.assertEqual(isinterleave('YX','X','XXY'),0,'example 3') + + def test_ex4(self): + self.assertEqual(isinterleave('ACF','BDEG','ABCDEFG'),1,'example 4') + + def test_ex5(self): + self.assertEqual(isinterleave('ACF','BDGE','ABCDEFG'),0,'example 5') + +unittest.main() -- cgit