题解 | #查找两个字符串a,b中的最长公共子串#

查找两个字符串a,b中的最长公共子串

https://www.nowcoder.com/practice/181a1a71c7574266ad07f9739f791506

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main() {
    string str1,str2;
    getline(cin,str1);
    getline(cin,str2);
    string temp;
    bool flag = false;
    string smallStr = str1.size()>str2.size()?str2:str1;
    string biggerStr = str1.size()>str2.size()?str1:str2;
    for(int i = smallStr.size();i!=0;--i)
    {
        for(int j = 0;j+i!=smallStr.size()+1;++j)
        {
            string sstr = smallStr.substr(j,i);
            if(biggerStr.find(sstr)!=string::npos)
            {
                temp = sstr;
                flag = true;
                break;
            }

        }
        if(flag)
            break;
    }
    cout<<temp;
}
// 64 位输出请用 printf("%lld")

getline读取以后会舍弃'\n'这样的换行符号,不需要再cin.ignore(),cin.ignore()是忽略cin的下一个字符

全部评论

相关推荐

头像
02-26 13:58
门头沟学院 Java
北城_阿亮:把八股背一背,包装一下实习经历项目经历,要是有心思考证就考一考,然后把别人的项目爬到自己github上,包装到简历里,什么三个月?一个月!
点赞 评论 收藏
分享
02-17 20:43
西北大学 Java
在做测评的猫头鹰很紧张:他问你,你问deep seek
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务