题解 | 找位置
找位置
https://www.nowcoder.com/practice/e3b2cc44aa9b4851bdca89dd79c53150?tpId=40&tqId=21560&tPage=1&rp=1&ru=/ta/kaoyan&qru=/ta/kaoyan/question-ranking
#include <cstdio>
#include <iostream>
using namespace std;
#include<set>
int main() {
string s;
multiset<char> set1; //multiset类可允许元素重复,所以可以用count函数计算目标元素的个数
while (cin>>s) {
int n = s.length();
for(int i=0;i<n;i++){
char c = s[i];
set1.insert(c);
}
for(int i=0;i<n;i++){
// 如果该元素的总个数仅为0或1
if (set1.count(s[i]) <= 1 ) {
// cout<<"hi";
continue;
}
for(int j=i;j<n;j++){
if (s[j] != s[i]) {
continue;
}
cout<<s[i]<<":"<<s.find(s[i],j);
// 如果不是相同元素的最后一个
if(s.find(s[i],j+1) <= s.size()){
cout<<",";
}else {
cout<<endl;
}
}
// 在set1中除去已经输出的元素
set1.erase(s[i]);
}
}
return 0;
}
// 64 位输出请用 printf("%lld")

