Zliczanie duplikatów

0

Witam

Jak najszybciej znalez wszystkie duplikaty poznajac ich pozycje?

Np:

zmienna = "AJHFHJAMGBGYGBTDYAHHBBB"

jak otrzymac z tego jakas tablice w ktorej beda duplikaty, oraz infomacja o ich pozycji?

np

A = 1,7,18
J = 2 6
H = 3,5,19,20

itd

Chodzi o nie skomplikowany alorytm i wydajny?

0

Język? Znając życie pewnie C++

#include <list>
#include <iterator>
#include <map>
#include <iostream>
using namespace std;

class Item{
  private:
    list<int> positions;
    int counter;
  public:
    Item():counter(0){}
    void increment(int position){
      positions.push_back(position);
      counter++;
    }
    void print(){
      list<int>::iterator it;
      for(it=positions.begin(); it!=positions.end();it++){
        cout<<*it<<" ";
      }
      cout<<endl;
    }
};

int main(){
  map<char,Item> mapa;
  string zmienna = "AJHFHJAMGBGYGBTDYAHHBBB";
  for(unsigned int i=0;i<zmienna.length();i++){
    mapa[zmienna[i]].increment(i);
  }
  map<char,Item>::iterator it;
  for(it=mapa.begin(); it!=mapa.end();it++){
    cout<<it->first<<" = ";
    it->second.print();
  }
  return 0;
}
0

Dziekuje pięknie

1 użytkowników online, w tym zalogowanych: 0, gości: 1