#include <iostream>//-----------我用的是枚举 using namespace std; #define pre(var, stare, end) for (int var = stare; var > end; var--) #define all(var) var.begin(), var.end() int main() { string s, ss; cin >> s >> ss; if (s.size() > ss.size())//--------保证s的长度<=ss swap(s, ss); size_t size = s.size(), ssize = ss.size(); bool flag = 0; pre(i, size, 0){//--------------从大到小枚举字串的长度 for (int j = 0; j <= size - i; j++){//--------从前往后枚举字串在s(较小串)出现的位置 if (ss.find(s.substr(j, i)) != string::npos){ cout << s.substr(j, i); //cout << j << " " << i; flag = 1; break; } } if (flag) break; } } // 64 位输出请用 printf("%lld")