huidong

首页 | 会员登录 | 关于争取 2022 寒假做出汇东网 Ver3.0.0 !
搜索文章


// 获取两字符串的最大重合子串
// 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;
}




返回首页


Copyright (C) 2018-2024 huidong