HammingSearch - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


StringTools

  

HammingSearch

  

find the first approximate occurrences of a string in another string

  

HammingSearchAll

  

find all approximate occurrences of a string in another string

 

Calling Sequence

Parameters

Description

Examples

Calling Sequence

HammingSearch( pattern, text, hd )

HammingSearchAll( pattern, text, hd )

Parameters

pattern

-

string

text

-

string

hd

-

Hamming distance

Description

• 

The HammingSearch(pattern, text, hd) command locates the first occurrence of a substring of the string text that is close to the string pattern in terms of its Hamming distance from pattern. Specifically, it locates the first such substring whose Hamming distance from pattern is less than or equal to hd. It returns the offset of the occurrence found, or the value 0 if there is no substring of text that is within Hamming distance hd of pattern.

• 

The HammingSearchAll(pattern, text, hd) command locates all occurrences of substrings of the string text that are within Hamming distance hd of the string pattern. An expression sequence of pairs of the form offset,dist is returned, where offset is the offset of the match, and dist is the Hamming distance of that match to the string pattern.

• 

Note that for hd=0, proximity searching degenerates into exact searching, for which StringTools[Search] and StringTools[SearchAll] provide faster algorithms.

• 

Since small Hamming distance bounds hd are most useful in practice, the algorithm is optimized for this case. Furthermore, if lengthpatternhd, then every possible substring of text with length equal to the length of pattern matches pattern.

• 

For approximate searching using the Levenshtein metric (instead of the Hamming metric), see the StringTools[ApproximateSearch] help page.

• 

All of the StringTools package commands treat strings as (null-terminated) sequences of 8-bit (ASCII) characters.  Thus, there is no support for multibyte character encodings, such as unicode encodings.

Examples

withStringTools:

HammingSearchfoo,defoe,0

0

(1)

HammingSearchfoo,defoe,1

3

(2)

HammingSearchfoo,defoe,2

2

(3)

HammingSearchfoo,defoe,3

1

(4)

HammingSearchfoo,defoe,4

1

(5)

HammingSearchgataa,cagataagagaa,2

3

(6)

HammingSearchAllgataa,cagataagagaa,2

3,0,8,1

(7)

See Also

searchtext

string

StringTools

StringTools[ApproximateSearch]

StringTools[ApproximateSearchAll]

StringTools[HammingDistance]

StringTools[Search]

StringTools[SearchAll]