Introduction
Now that we have talked so much about efficient ways of pattern finding using Boyer Moore and KMP algorithm. Let us try and understand other aspects of Text Processing as well.
This post will mostly focus on using tries for text processing, storing text efficiently and also discuss about data structures which may make more sense when we talk about storage and retrieval of text based on some given criteria.
Here are some real world problems which often demand quicker answers:
Ever wondered why you are able to search a word in a dictionary so fast? How do you think one w...

Read More
# strings

## Pattern Finding – KMP Algorithm

Introduction
Now that you are fully equipped with the Boyer Moore Algorithm and have a notion of Pattern Finding. I would suggest you to get deeper into pattern finding. You can read about the benefits of pattern finding in my previous post about Boyer Moore.
This post will try to make you familiar with all the thought processes which you can use to exploit the known properties of texts and patterns using KMP Algorithm. However, Boyer Moore seems to be slightly intuitive, this one is a real geeky way of finding patterns.
Knuth Morris Pratt
Yes! this is what KMP stands for, you can learn ...

Read More
## Pattern Finding – Boyer Moore

Introduction
String matching problems are important part of many Programming Contests and also find applications in real world problems. Imagine you are asked to implement a text editor.
What are few of the most common operations in a text editor?
Copy and Paste.
Search and Replace.
The performance of your text editor will completely depend on how efficiently it can search and/or replace patterns in a huge text.
Basics of Pattern Finding
In a given pattern matching problem, we have two strings one is called the text T and the other is called the pattern P. The task is to find th...

Read More
## Interleaving Strings

Problem Statement
This is a question from one of the interview experiences. The statement, "Given three strings A, B and C find if C is an interleaving of A and B." Interleaving is defined as below:
A string C is said to be an interleaving of two strings A and B if C contains a sub sequence of A and B such that the relative order of characters in A and in B are preserved in C.
For e.g. :
A - ABCD
B - BACDX
C - ABACDXBCD
The Idea - Interleaving Strings
Here I am not giving any solution which is less than O(M*N) solution where M is the length of the shortest string among A and B...

Read More