This notebook was prepared by Donne Martin. Source and license info is on GitHub.
See the HackerRank problem page.
See the HackerRank problem page.
See the HackerRank problem page.
Complexity:
class Solution(object):
def calc_utopian_tree_height(self, cycles):
height = 1
if cycles == 0:
return height
for i in range(1, cycles+1):
if i % 2 == 1:
height *= 2
else:
height += 1
return height
%%writefile test_utopian_tree.py
import unittest
class TestUtopianTree(unittest.TestCase):
def test_utopian_tree(self):
solution = Solution()
self.assertEqual(solution.calc_utopian_tree_height(0), 1)
self.assertEqual(solution.calc_utopian_tree_height(1), 2)
self.assertEqual(solution.calc_utopian_tree_height(4), 7)
print('Success: test_utopian_tree')
def main():
test = TestUtopianTree()
test.test_utopian_tree()
if __name__ == '__main__':
main()
Overwriting test_utopian_tree.py
run -i test_utopian_tree.py
Success: test_utopian_tree