Patent ID: 8645350

Claim:
A computer implemented method, comprising: constructing, by a server, a dictionary as a prefix tree having key strings associated with a plurality of nodes interconnected via branches, the plurality of nodes including at least one branch node coupled via some of the branches to sibling nodes of the branch node and child nodes of the branch node; assigning, by the server, a sequence of reference numbers to the plurality of nodes in a monotonic progression as the prefix tree is traversed along the plurality of nodes; wherein a sibling node of a branch node of the prefix tree is assigned a reference number that is positioned in the sequence of reference numbers after a reference number assigned to the branch node but before a reference number assigned to any child nodes of the branch node; and wherein multiple child nodes of the branch node are assigned reference numbers according to an order of appearance of characters in the key strings; and transforming the prefix tree into a string array based on the assigned reference numbers; searching for a word formed by concatenating the characters included in the key strings along a path defined by some of the plurality of nodes and the branches; and upon failing to find the word, displaying a list of suggested words according to a non-repeating list of the characters by inserting possible missing characters and replacing possible mistaken characters with possible intended substitute characters, the possible missing characters and the possible intended substitute characters included in the non-repeating list of the characters.