匯東網


StringCoincidence 获取两字符串最大重合子串

[編輯] [转简体]
|
作者:huidong | 分類:【編程】C/C++
[ 23 瀏覽 0 評論 6 贊 7 踩 ]

概要

正文

// 获取两字符串的最大重合子串
// strRes, strChild 原字符串
// strCoincidence 重合字符串
// begin, end 在 strRes 上的重合位置
// 返回重合长度
int StringCoincidence(string strRes, string strChild, string& strCoincidence, int& begin, int& end)
{
    begin = 0, end = 0;
    int s1 = (int)strRes.size(), s2 = (int)strChild.size();
    for (int i = 0; i < s1; i++)
    {
        for (int j = 0; j < s2; j++)
        {
            if (strChild[j] == strRes[i])
            {
                int k = 1;
                for (; j + k < s2 && i + k < s1; k++)
                {
                    if (strChild[j + k] != strRes[i + k])
                    {
                        break;
                    }
                }
                if (k > end - begin)
                {
                    begin = i;
                    end = i + k;
                    j += k;
                }
            }
        }
    }
    strCoincidence = strRes.substr(begin, end - begin);
    return end - begin;
}


[ 6] [ 7]


 評論區  0 條評論

+ 添加評論