找两个字符串的最长公共子串的最大长度
【找两个字符串的最长公共子串的最大长度】
题目:找两个字符串的最长公共子串的最大长度
分析:从较短的那个子串的长度串依次判断是不是长串的子串,即从将可能的最长公共子串开始比较,那么只要匹配到,一定是最长的子串。
int max_common_str(const string& s1, const string& s2)
{
string longstr;
string shortstr;
if (s1.size() > s2.size())
{
longstr = s1;
shortstr = s2;
}
else
{
longstr = s2;
shortstr = s1;
} //将短的字符串从长度为len,len-1...
string sub;
int lsub = 0;
int max = 0;
for (int len = shortstr.size();
len > 0;
len--)
{
for (int i = 0;
i <= shortstr.size() - len;
i++)
{
sub = shortstr.substr(i, len);
if (strstr(longstr.c_str(), sub.c_str()))
{
lsub = sub.size();
}
}
//其实不需要这的
/*if (lsub > max)
{
max = lsub;
}*/
}
return max;
}
推荐阅读
- 如何寻找情感问答App的分析切入点
- 2021-02-10(找不回的“年味”……)
- 好想,找个大海去裸奔…
- 一起来学习C语言的字符串转换函数
- 拿着旧地图,找不到新大陆
- 刘婵为何不娶关羽的女儿为妻子,而为何要娶张飞的两个女儿
- 说睡
- 字符串拼接成段落,换行符(\n)如何只执行n-1次
- 三国谋略22(找准你的定位)
- 霍兰德职业代码对照表