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

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

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

由长度较短的字符串从长到短取所有子串,在另一个字符串中搜索,如果可以找到相等的字符串,则输出此字符串。

#include <iostream>
using namespace std;

int main() {
     string s1, s2;
     cin >> s1 >> s2;
     if (s1.length() > s2.length()) {
        string temp = s1;
        s1 = s2;
        s2 = temp;
     }
     for (int i = s1.length(); i > 0; i--) {
        for (int j = 0; j <= s1.length() - i; j++) {
            string temp = s1.substr(j, i);
            if (s2.find(temp) != string::npos) {
                cout << temp;
                return 0;
            }
        }
     }
     cout << "";
     return 0;
}
// 64 位输出请用 printf("%lld")

中等(算法题解) 文章被收录于专栏

中等难度题目

全部评论

相关推荐

10-29 18:20
济南大学 Java
用微笑面对困难:他不是人事吗,怎么净特么不干人事
点赞 评论 收藏
分享
头像
10-27 15:50
门头沟学院 Java
想进开水团喝开水:有一种店 只能外卖 不能堂食 你猜为什么
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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