vector<string> findSameStrs(vector<vector<string>> strs){
vector<string> result;
map<string, int> temp;
for (int i = 0; i < strs[0].size(); i++)
{
temp.insert(pair<string, int>(strs[0][i],1));
}
for (int i = 1; i < strs.size(); i++)
{
for (int j = 0; j < strs[i].size(); j++)
{
if (temp.count(strs[i][j]) == 1)
{
temp[strs[i][j]]++;
}
}
for(std::map<string, int>::iterator it = temp.begin();it!=temp.end();it++){
if (it->second != i+1)
{
result.push_back(it->first);
}
}
for (int m = 0; m < result.size(); m++)
{
temp.erase(result[m]);
}
result.clear();
}
for(std::map<string, int>::iterator it = temp.begin();it!=temp.end();it++){
result.push_back(it->first);
}
return result;
}
//实例
string strss[3][4] = {{"ab","ac","ad","dd"}, {"ab","ae","ad","bc"}, {"ab","ae","ad","cc"}};
vector<vector<string>> strs(3, vector<string>(4));
for(int m = 0; m < strs.size(); m++)
{
for(int n = 0; n < strs[m].size(); n++)
{
strs[m][n] = strss[m][n];
}
}
findSameStrs(strs);
输出二维数组共有字符串
最新推荐文章于 2023-09-05 11:00:49 发布