This repository contains two files:
(1): functions.py: This file contains the function definitions needed to solve parts 1-4 of the coding challenge.
For the convenience there are four different functions defined for each of the 4 parts. In addition there are
functions defined to analyze the input string. Each function takes string of gates as input. These functions then
optimize and try to reduce the number of gate operations by combining some of them into single operation.
(2): Test_Examples.ipynb: This is a python notebook file which imports the function.py module. As shown in the
notebook functions part_*(<arguments>) can be called for various different input strings for a given 1 or 2 qubit circuits.