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

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

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

#include <iostream>
#include <unordered_map>
using namespace std;

int main() {
    string short_str,long_str,temp;
    cin>>short_str>>long_str;
    if(short_str.length()>long_str.length()) swap(short_str,long_str); 
    string result="";
    int length_s = short_str.length();
    int length_l = long_str.length();
    for(int l=1;l<=length_s;l++){
        unordered_map<string,int> dic;
        for(int i=0;i<length_l-l+1;i++){
            if(dic.find(long_str.substr(i,l))==dic.end()){
                dic.insert(make_pair(long_str.substr(i,l),1));
            }
        }
        for(int i=0;i<length_s-l+1;i++){
            if(dic.find(short_str.substr(i,l))!=dic.end()){
                result = short_str.substr(i,l);
                break;
            }
        }
    } 
    cout<<result;
    return 0;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
2025-12-18 11:21
优秀的大熊猫在okr...:叫你朋友入职保安,你再去送外卖,一个从商,一个从政,你们两联手无敌了,睁开你的眼睛看看,现在是谁说了算(校长在背后瑟瑟发抖)
选实习,你更看重哪方面?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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