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

输入两个字符串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);
}

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 曾经 年少轻狂爱做梦 渴望实现 如今 努力拼搏勇追梦 盼望实现 让生活慢下来 让内心软下来 静静品味 慢慢斟酌 不...
    茹0501阅读 88评论 0 1
  • 想起一件事,读初中时,因为表舅的关系,学校里的老师会关照我一些,一般以上那种。那时候我学习不是很好。现在想来惭愧。...
    压山海棠阅读 116评论 0 0
  • 语文 背记知识点 数学 学好基础刷题 英语 记住语法 语法对应练习 政史地生 背记好 物理化学 重在理解
    焦阿基诺三世阅读 194评论 0 0
  • 用心去讲故事,用摄影去交流 电影工业的早期,导演和摄影师实际上是同一个人。由于电影工业的不断发展,导演的工作负担越...
    一派胡盐阅读 509评论 0 0