# Longest Common Subsequence

Write a function to find the length of the longest common subsequence between two sequences.

E.g. Given the strings “serendipitous” and “precipitation”, the longest common subsequence is “reipito” and its length is 7.

Recursive approach

# ‘A Basket of Sorting Algorithms’ Using Python

"Sorting" essentially refers to "sorting in ascending order", unless specified otherwise.

Sorting algorithms are capable of doing multiple and extraordinary things, imagine how much time it would take for a human to sort a list of thousands of names to make a phonebook, or a list of thousands of recipes, archives, animals, etc.

Let’s create a list of numbers to be sorted as an example !

`nums`: A list of numbers e.g. `[4, 2, 6, 3, 4, 6, 2, 1]`

## 1. Bubble Sort

It is called by this name because herein smaller elements to bubble to the top and larger to sink to…

# Recreating Python Dictionaries from Scratch

Wondering how to do that?! Well, then continue reading… :)

As it is well known that Python Dictionaries are a data structure which are used to store key-value pairs; where “keys” are used to store and retrieve the stored “values”. For example, here is a dictionary for storing and retrieving the marks of students in a class;

`# Creating a dictionaryresult = {  'A' : '20',  'B' : '15',  'C' : '10'}result# Retrieving the marks using key value(here, name)result['A']# Add a new valueresult['Z'] = '9'# Update existing valueresult['A'] = '11'#…`

# An Introduction to Linked Lists in Python

A linked list is a data structure used for storing a sequence of elements. It’s data with some structure (the sequence).

`class LinkedList(): def __init__(self): self.head = None def append(self, value): if self.head is None: self.head = Node(value) else: current_node = self.head while current_node.next is not None: current_node = current_node.next current_node.next = Node(value) def show_elements(self): current = self.head while current is not None: print(current.data) current = current.next def length(self): result = 0 current = self.head while current is not None: result += 1 current = current.next return result def get_element(self, position): i = 0 current = self.head while current is…`

# A brief introduction to Binary Search Tree (BST) using Python 