题解 | #找位置#
找位置
https://www.nowcoder.com/practice/e3b2cc44aa9b4851bdca89dd79c53150
#include <iostream> using namespace std; #include<vector> #include<algorithm> typedef pair<char, int>pci; int main() { string s; cin >> s; vector<pci>q; int count[110] = { 0 }; for (int i = 0; i < s.size(); i++) { q.push_back({ s[i],i }); count[s[i] - '0']++;//记录重复的数值 } bool flag[110] = { false };//记录是否输出过 for (int k = 0; k < s.size(); k++) { if (count[s[k] - '0'] > 1) { //该数值重复 for (int j = k; j < s.size(); j++) { if ((q[k].first == q[j].first) && flag[j] == false) {//是重复的且还未输出则输出 { count[s[k] - '0']--; cout << q[j].first << ':' << q[j].second; if (count[s[k] - '0'] >=1) cout << ','; } flag[j] = true; } } cout << endl; } } }#pair+vector永远的神!!!#