美文网首页
C++求两个字符串最大字串

C++求两个字符串最大字串

作者: Virtualer | 来源:发表于2019-09-25 13:57 被阅读0次

输入两个字符串str1str2,输出二者的最大相同子串str

string findMaxSameStr(string str1, string str2)
{
    string a = str1.size() > str2.size() ? str1 : str2;
    string b = str1.size() > str2.size() ? str2 : str1;
    int len = 0, pos = 0;
    for (size_t i = 0; i < b.size(); ++i) {
        for (size_t j = 0; j < a.size(); ++j) {
            if (a[j] == b[i]) {
                int templen = 1;
                int pos1 = i;
                int pos2 = j;
                while (pos1 + 1 < b.size() && pos2 + 1 < a.size() && b[++pos1] == a[++pos2]) {
                    ++templen;
                }
                if (templen > len) {
                    len = templen;
                    pos = i;
                }
            }
        }
    }     
    return b.substr(pos, len);
}

在刷题的时候经常遇到这种问题,其实就我浅薄的经验来看,在工作中好像还没有经常遇到过此类问题(笑)。

相关文章

  • C++求两个字符串最大字串

    输入两个字符串str1和str2,输出二者的最大相同子串str 在刷题的时候经常遇到这种问题,其实就我浅薄的经验来...

  • 统计最大公共字符个数

    题目标题:计算两个字符串的最大公共字串的长度,字符不区分大小写原型:int getCommonStrLength(...

  • 求两个字符串的最大公共字串

    问题 计算两个字符串x和y的最长公共字串(Longest Common Substring) 说明 假设字符串x和...

  • 公共字串计算

    1.描述 计算两个字符串的最大公共字串的长度,字符不区分大小写。 2.原型 int getCommonStrLen...

  • Manacher's Algorithm 的理解

    在 leetcode 刷题刷到求字符串的最长回文字串,而马拉车算法(Manacher's Algorithm), ...

  • 14 - shell字符串处理及变量

    字符串处理机制 字串截取 语法格式:${变量:起始位置:长度} 子串替换 替换1个结果:${变量/旧字串/新字串}...

  • 【python】求两个字符串的公共字串?

    题目:找出两个字符串的最长公共字串,例如字符串“abccade”与字符串“dgcadde”的最长公共子串为“cad...

  • 实验十:优秀代码

    C : 递归求最大公约数 题目描述写递归函数求两个数的最大公约数优秀代码 D: 编写删除字符串中某个字符的函数--...

  • 搜狐

    1、判断字符串中匹配的括号数 C++中str.size(),str(len),str.length()求字符串数组...

  • 爱奇艺-笔试刷题2018-07-13

    题目描述: 思路如下: 把原来字符串分割成长度为len1和len2的两个字符串求这两个字符串最大的公共子序列时间复...

网友评论

      本文标题:C++求两个字符串最大字串

      本文链接:https://www.haomeiwen.com/subject/glwhyctx.html