I. Introduction
Given two equal length strings and , the Hamming distance between them, denoted , is the number of positions where the two strings differ. For example, . Several classic similarity search problems are defined for Hamming distance. In particular, there is the Hamming distance range query problem, which was first posed by Minsky and Papert in 1969 [22], where the goal is to find all strings in a database that are within a Hamming distance bound from a query string. A related problem is the nearest neighbor (KNN) problem, where the goal is to find the nearest neighbors in a given database with respect to Hamming distance to a given query string. Although these problems are extremely simple and natural problems, finding fast and space efficient algorithms for solving them remains a fundamental open problem where new results are still emerging.