aboutsummaryrefslogtreecommitdiff
path: root/challenge-082/roger-bell-west/python/ch-2.py
diff options
context:
space:
mode:
author冯昶 <fengchang@novel-supertv.com>2020-10-13 21:53:07 +0800
committer冯昶 <fengchang@novel-supertv.com>2020-10-13 21:53:07 +0800
commita3b7884792e5b7a8f147a294989fa49b65e9308f (patch)
tree27bd5f483c68238e9708d20f5985e2c8a578a0f3 /challenge-082/roger-bell-west/python/ch-2.py
parentfa2e628623cb8c8437ff27ffe231894c7593f777 (diff)
parent73bd8af8d58941b8066141bc3fc64cf4165d80b5 (diff)
downloadperlweeklychallenge-club-a3b7884792e5b7a8f147a294989fa49b65e9308f.tar.gz
perlweeklychallenge-club-a3b7884792e5b7a8f147a294989fa49b65e9308f.tar.bz2
perlweeklychallenge-club-a3b7884792e5b7a8f147a294989fa49b65e9308f.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-082/roger-bell-west/python/ch-2.py')
-rwxr-xr-xchallenge-082/roger-bell-west/python/ch-2.py37
1 files changed, 37 insertions, 0 deletions
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()