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; }