#include<cstdio>
#include<string>
#include<map>
#include<vector>
using namespace std;
int main() {
char arr[10001];
while (scanf("%s", arr) != EOF) {
string str = arr;
map<char, vector<int>> myMap; //映射所有字符,对应字符下标
for (int i = 0; i < str.size(); i++) {
myMap[str[i]].push_back(i);//记录下标
}
for (int i = 0; i < str.size(); i++) {
if (myMap.find(str[i]) != myMap.end() && myMap[str[i]].size() != 1) {
for (int j = 0; j < myMap[str[i]].size() - 1; j++) {
printf("%c:%d,", str[i], myMap[str[i]][j]);
}
printf("%c:%d\n", str[i], myMap[str[i]][myMap[str[i]].size() - 1]);
myMap.erase(str[i]);
}
}
}
return 0;
}
map+vector,记录下标后再输出

京公网安备 11010502036488号