TAG
- 芝士水题、算法 − 【 S T L − s e t 、 S T L − m a p 、 S T L − v e c t o r 】 芝士水题、算法 - 【STL - set、STL - map、STL - vector】 芝士水题、算法−【STL−set、STL−map、STL−vector】时间复杂度
- O ( N ) O(N) O(N)
//
#include <bits/stdc++.h>
using namespace std;
// #define int long long
const int N = 1e3 + 4;
set<string> st;
map<string, int> mp;
vector<string> ans_name;
vector<string> ans_id[N];
void solve() {
int n;
scanf("%d", &n);
int idx = 0;
while (n--) {
string id, name;
cin >> id >> name;
if (st.find(name) == st.end()) {
st.insert(name);
ans_name.push_back(name);
mp[name] = ++idx;
ans_id[idx].push_back(id);
} else {
ans_id[mp[name]].push_back(id);
}
}
for (int i = 0; i < ans_name.size(); i++) {
cout << ans_name[i] << " " << ans_id[mp[ans_name[i]]].size() << endl;
for (int j = 0; j < ans_id[mp[ans_name[i]]].size(); j++) {
cout << ans_id[mp[ans_name[i]]][j] << endl;
}
}
}
signed main() {
int t = 1;
// scanf("%d", &t);
while (t--) solve();
return 0;
}
实现细节
- `
参考示意图
-
`
参考链接
- `
作者 | 乐意奥AI