Quantcast
Viewing all articles
Browse latest Browse all 40121

substring matching

Given a string S and and integer K, find the integer C which equals the number of pairs of substrings(S1,S2) such that S1 and S2 have equal length and Mismatch(S1, S2) <= K where the mismatch function is defined below.

mismatch(abc,abs)=1 c and s are diffrent; i have brute force this but i need optimal solution..

 int mismatch(string s1,string s2)
        {
      int l1=s1.length();
      int l2=s2.length();
     int ans=0;
     int i=0;
      if(l1==l2)
             {

    while(s1[i]!='\0')
    {
        if(s1[i]!=s2[i])
        {
            ans++;
        }
        i++;
    }

}

return ans;

} main() {

             int K;
             string s;
                cin>>K;
            cin>>s;
         int len=s.length();
          vector<string> v[5005];
            int count=0;
          for(int i=0;i<s.length();i++)
          {
    string str;
    for(int j=i;j<s.length();j++)
    {
        str+=s[j];
        for(int k=i+1;k<s.length();k++)
        {
                                  if((str.length()==s.substr(k,str.size())).length())&&mismatch(str,s.substr(k,str.size()))<=K)
            {
                count++;
            }

        }


    }
}
cout<<count;

plz help me to otimize this..


Viewing all articles
Browse latest Browse all 40121

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>