题解 | #哈希表#查找两个字符串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;
}
查看10道真题和解析
上海得物信息集团有限公司公司福利 1176人发布