您的位置:首页 > 其它

华为OJ中级题-查找两个字符串a,b中的最长公共子串

2015-11-22 13:27 567 查看
查找两个字符串a,b中的最长公共子串。

void hwOJ(){
string a = "abcdefghijklmnop";
string b = "abcsafjklmnopqrstuvw";
int lena = a.length();
int lenb = b.length();
int st1 = 0, st2 = 0,st=0;
int count = 0, MAx = 0;
string tmp = "", longStr = "";
for (int i = 0; i < lena; ++i){
for(int j = 0; j < lenb; ++j){
st1 = i; st2 = j;
while (a[st1] == b[st2]&&st1<lena&&st2<lenb){
++st1; ++st2;
++count;
}
if (count > MAx){
MAx = count;
st = i;
}
count = 0;
}
}
string str;
for (int i = 0; i < MAx; ++i){
str.push_back(a[i + st]);
}
cout << str;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: