题解 | #查找两个字符串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的下一个字符

全部评论

相关推荐

zephory:内容太乱了,根本捕捉不到重点,指导你会的很多,但是看不到具体的强项 个人技能宜精不宜多 项目那块太繁琐了,面试官或者hr只想知道你在项目中看了啥以及具体的收益
点赞 评论 收藏
分享
10-01 09:50
门头沟学院 Java
肖先生~:这个人真的很好,点赞
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务