Problem Statement
Given two strings, find the total number of characters we need to delete from these strings to make them anagrams of each other.
Understanding Anagrams
Anagrams are defined with respect to a given string of characters (not necessarily characters in the English Alphabet) but a wider set of characters may be.
Given two strings A and B, if the number of time each character occurs in both the string is exactly same, we say A and B are anagrams. However, the order in which the character appears may be different and doesn't matter.
For example
A = axbbxxcecdeedda
B = abacb...

Read More
# Algorithms

This category contains all the posts related to Algorithms. For e.g.: Sorting, Hashing, Searching, Tree Traversals, Graph Theory etc.

## Inorder Predecessor of node in Binary Tree Using Parent Pointer

Introduction
This is the seventh article in the Tree Traversals - Online Classes.
This article presents ways to find out inorder predecessor of node in binary tree. As we have already read about the Inorder Successor it wont take much effort to understand the predecessor.
Definition - Inorder Predecessor of node in Binary Tree
If a node K is called the inorder predecessor of node N then N must be visited immediately after K in a inorder traversal of the tree.
Below is a more formal definition of Inorder Predecessor:
If the node has a left sub-tree, then inorder predecessor is the ...

Read More
## Inorder Successor of node in Binary Tree Using Parent Pointer

Introduction
This is the sixth article in the Tree Traversals - Online Classes.
This article presents ways to find out inorder successor of node in binary tree. Before we jump into the code it would be good to correctly define the meaning of the problem.
Definition - Inorder Successor of node in Binary Tree
If a node K is called the inorder successor of node N then K must be visited immediately after N in a inorder traversal of the tree.
Below is a more formal definition of Inorder Successor:
If the node has a right sub-tree, then inorder successor is the left most node of the rig...

Read More
## Tree Diameter

Introduction
This is the fifth article in the Tree Traversals - Online Classes.
A very interesting problem is to find the diameter of a tree. The challenge is not in coding the algorithm but in understanding the meaning of the problem. We will try to define the problem so that visualizing the solution becomes easy.
Defining the problem - Tree Diameter
Few confusions about the diameter must be avoided before we start.
The tree diameter is always the distance between two leaf nodes
The diameter may or may not pass through the root.
The diameter can also lie on one of the two sides,...

Read More
## Spiral Traversal

Spiral Traversal or Zigzag Traversal in a Tree.
This is the fourth article in the Tree Traversals - Online Classes.
Recently I wrote an article on Level Order Tree Traversal. Another problem on the same lines is to traverse the tree in a zigzag manner. That is also termed as spiral traversal. This question has been asked in many companies during the interview process.
Although it is not very specific problem, if you understand the idea behind traversing a tree in breadth first manner, then you can easily solve this. Please read further for more understanding.
Defining the problem
L...

Read More
## Level Order Tree Traversal

Introduction
This is the third article in the Tree Traversals - Online Classes.
I have written many articles about non-linear data structures and their traversals. But the more you dive in you can find many more ways to traverse a tree. Here we try to solve the level order tree traversal for a binary tree and we will also try to figure out other variations of this traversal. This can we precisely extended for a n-ary tree as well.
Defining the problem
Let us consider the above tree, if we follow the blue line from root till end and print all the nodes, we will end up printing the lev...

Read More
## Understanding Search Trees – Red Black Trees

Introduction
This article is to highlight the importance of having a Search tree with minimum height and revisit couple of data structures which can guarantee a minimum height Tree.
Understanding Search Trees - Red Black Trees
An evolution of BST that aim to keep the tree balanced without affecting the complexity of the primitive operations. This is done by colouring each node in the tree with either red or black and preserving a set of properties that guarantees that the deepest path in the tree is not longer than twice the shortest one.
A red black tree is a binary search tree with the...

Read More