演算法計算字串的相似度

dongyu2013發表於2014-04-19

點選(此處)摺疊或開啟

  1. int CalculateStringDistance(string strA, int pABegin, int pAEnd, string strB, int pBBegin, int pBEnd)
  2. {
  3.     if(pABegin>pAEnd)
  4.     {
  5.      if(pBBegin>pBEnd)
  6.      {
  7.         return 0;
  8.      }
  9.      else
  10.      {
  11.         return pBEnd-pBBegin+1;
  12.      }
  13.     }

  14.     if(pBBegin>pBEnd)
  15.     {
  16.      if(pABegin>pAEnd)
  17.      {
  18.         return 0;
  19.      }
  20.      else
  21.      {
  22.         return pAEnd-pABegin+1;
  23.      }
  24.     }

  25.     if(strA[pABegin]==strB[pBBegin])
  26.     {
  27.      return CalculateStringDistance(strA, pABegin+1, pAEnd, strB, pBBegin+1, pBEnd);
  28.     }
  29.     else
  30.     {
  31.         int t1=CalculateStringDistance(strA, pABegin, pAEnd, strB, pBBegin+1, pBEnd);
  32.         int t2=CalculateStringDistance(strA, pABegin+1, pAEnd, strB, pBBegin, pBEnd);
  33.         int t3=CalculateStringDistance(strA, pABegin+1, pAEnd, strB, pBBegin+1, pBEnd);
  34.     }
  35.     return minValue(t1, t2, t3);
  36. }

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29012686/viewspace-1145086/,如需轉載,請註明出處,否則將追究法律責任。

相關文章