niccw
3/6/2019 - 3:02 PM

ApproximatePatternCount

int HammingDistance(std::string s1, std::string s2){
    int cnt = 0;
    for(int i = 0; i < s1.size();i++){
        if(s1[i] != s2[i]){
            cnt++;
        }
    }
    return cnt;
}


int ApproximatePatternCount(std::string Text, std::string Pattern, int d){
    int cnt = 0 ;
    std::string sub_str;
    for(int i=0; i < Text.size() - Pattern.size()+1; i++){
        sub_str = Text.substr(i,Pattern.size());
        //std::cout << sub_str << Pattern.size() << std::endl;
        if (HammingDistance(sub_str,Pattern) <= d){
            cnt++;
        }
    }
    return cnt;
}