1. A method, comprising: receiving input from an user in form of words, inserting the words that have at least one of a distinct character or one distinct syllable from other the words received; searching for at least one of the distinct character, distinct syllable and the word is done before and after inserting; storing all the distinct character, distinct syllable and the word in the words sequentially in an order of occurrence in a hardware memory as a memory bank B; reassembling the location of a character in memory bank B to a location specified by an ASCII code of the character and store in a memory bank A; searching for the character sequentially in a word from the memory bank B by translating the character into a corresponding ASCII code and using the corresponding ASCII code to retrieve a location of the character from the hardware memory as the memory bank A; storing the order of occurrence of the character in the word with the corresponding ASCII code in form an address in the memory bank A, wherein the storing of all distinct first two or more character syllables of the input words are stored in memory banks of a size equivalent to the multiple of memory bank B, wherein the locations of all distinct two or more character syllable are placed in memory locations a multiple of memory bank A and the number of memory banks of size A required for location storage for first starting syllable of size N is equal to the number of distinct syllables of size (N−1) building a one dimensional array for distinct characters and another one dimensional array for storing their locations; building one dimensional array for storing distinct syllables and a three dimensional array for storing their locations; building a one dimensional array for inserting distinct words and a three dimensional array to store their locations; and using these arrays both for searching and inserting.