aboutsummaryrefslogtreecommitdiff
path: root/challenge-125/roger-bell-west/python/ch-2.py
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-08-11 20:23:28 +0100
committerGitHub <noreply@github.com>2021-08-11 20:23:28 +0100
commitca43541e7e6fc67e031f9ca1cf50e8b4fb75c568 (patch)
treee3daf4056d3364bb54b69fe053f88d7a0c393c85 /challenge-125/roger-bell-west/python/ch-2.py
parent3160ed2946bd278c732873146f892ab4f80f8317 (diff)
parentda9333b5b848624319742346d77d09cf35ec3e6a (diff)
downloadperlweeklychallenge-club-ca43541e7e6fc67e031f9ca1cf50e8b4fb75c568.tar.gz
perlweeklychallenge-club-ca43541e7e6fc67e031f9ca1cf50e8b4fb75c568.tar.bz2
perlweeklychallenge-club-ca43541e7e6fc67e031f9ca1cf50e8b4fb75c568.zip
Merge pull request #4687 from Firedrake/rogerbw-challenge-125
Solutions for challenge #125
Diffstat (limited to 'challenge-125/roger-bell-west/python/ch-2.py')
-rwxr-xr-xchallenge-125/roger-bell-west/python/ch-2.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/challenge-125/roger-bell-west/python/ch-2.py b/challenge-125/roger-bell-west/python/ch-2.py
new file mode 100755
index 0000000000..b03a09c4e0
--- /dev/null
+++ b/challenge-125/roger-bell-west/python/ch-2.py
@@ -0,0 +1,36 @@
+#! /usr/bin/python3
+
+import unittest
+
+from math import degrees,atan2
+
+def btd(tree):
+ st=len(tree)
+ depth=[0]*st
+ diameter=[0]*st
+ for i in range(st-1,-1,-1):
+ if tree[i] != 0:
+ a=i*2+1
+ b=a+1
+ if b < st:
+ depth[i]=1+max(depth[a],depth[b])
+ diameter[i]=max(
+ 1+depth[a]+depth[b],
+ diameter[a],
+ diameter[b]
+ )
+ else:
+ depth[i]=1
+ diameter[i]=1
+ return diameter[0]
+
+class TestBtd(unittest.TestCase):
+
+ def test_ex1(self):
+ self.assertEqual(btd([1,
+ 2,5,
+ 3,4,6,7,
+ 0,0,0,0,0,0,8,10,
+ 0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0]),7,'example 1')
+
+unittest.main()