# Freebies

Here are things that you get for free if you wish to work in Python.

• AKDSFramework, a Purely written in Python library containing implementations of various data structures. See documentations here $$\to$$.
• Benchmarking decorator: Use an one line import to profile any python function, from AKDSFramework.applications.decorators import benchmark. More on this here in this blog post $$\to$$.
• A Python based caching decorator, to use in Dynamic Programming problems. More on this here in this blog post $$\to$$.
• A big O analyser, find it here $$\to$$. It works with most of the python programs but is not a good fit for more complex functions.
• TinyDS, small and simple pythonic implementations for most of your coding problems that are asked in SDE I or II interviews at FAANGs that you will be able to implement on the spot if asked.

## C++

### Writing C++ Output with color

Distinguishing C++ output inside the terminal is a hard job. Use the following color pallette to distinguish the outputs.

#define RESET "\033[0m"
#define BLACK "\033[30m"              /* Black */
#define RED "\033[31m"                /* Red */
#define GREEN "\033[32m"              /* Green */
#define YELLOW "\033[33m"             /* Yellow */
#define BLUE "\033[34m"               /* Blue */
#define MAGENTA "\033[35m"            /* Magenta */
#define CYAN "\033[36m"               /* Cyan */
#define WHITE "\033[37m"              /* White */
#define BOLDBLACK "\033[1m\033[30m"   /* Bold Black */
#define BOLDRED "\033[1m\033[31m"     /* Bold Red */
#define BOLDGREEN "\033[1m\033[32m"   /* Bold Green */
#define BOLDYELLOW "\033[1m\033[33m"  /* Bold Yellow */
#define BOLDBLUE "\033[1m\033[34m"    /* Bold Blue */
#define BOLDMAGENTA "\033[1m\033[35m" /* Bold Magenta */
#define BOLDCYAN "\033[1m\033[36m"    /* Bold Cyan */
#define BOLDWHITE "\033[1m\033[37m"   /* Bold White */

### Usage with std::cout

Everytime you use any of the color you must reset the color from the terminal like the following:

int main() {
vector<int> v = {1, 0, 1, 0, 0};

for (auto i : v)
cout << BOLDCYAN << i << " " << RESET;

cout << " \n";
return 0;
}

## Algorithms C++

C++ Algorithms is a simple data structure implementation library that you can remember to implement in an interview setting.

## Contributing

There is some open positions for contribution in AKDSFramework tinyds, and C++ Algorithms projects. If you are willing to work open source please reach out to me at hey@theroyakash.com.

Warning

Note that I am currently a masters student in computer science, so I won't be able to provide financial reimbursement for any of the contributions done for the project. If that does not bother you, please reach out.