题目地址:
解题代码:
class Solution {
public:
vector<string> findRestaurant(vector<string>& list1, vector<string>& list2) {
int s=30000;
unordered_map<string,int> mp;
for(int i=0;i<list1.size();i++)
mp[list1[i]]=i;
for(int j=0;j<list2.size();j++)
{
unordered_map<string,int>::iterator it = mp.find(list2[j]);
if(it!=mp.end())
{
s=min(s,j+it->second);
}
}
vector<string> ret;
for(int i=0;i<list1.size();i++)
{
if(s-i>=0&&s-i<list2.size()&&list1[i]==list2[s-i]) ret.push_back(list1[i]);
}
return ret;
}
};