Liczenie serii wystąpień
Ostatnio zmodyfikowano 2014-05-10 00:19
Midas Temat założony przez niniejszego użytkownika |
Liczenie serii wystąpień » 2014-05-09 19:16:14 Cześć, zastanawiam się jak liczyć liczbę serii w ciągu np. jeżeli mamy ciąg 1 1 1 2 1 2 1 1 2 2 2 2 1 1
Mamy 7 serii 4 serie jedynek 3 serie dwójek
Czy ktoś ma jakiś pomysł ? |
|
Monika90 |
» 2014-05-09 20:16:33 to przecież trywialne! template<class T> std::map<T, int> count_series(const std::vector<T>& seq) { std::map<T, int> series; if (!seq.empty()) { auto current = seq[0]; series[current] = 1; std::size_t i = 1; while (i < seq.size()) { if (current != seq[i]) { current = seq[i]; series[current] += 1; } ++i; } } return series; }
żeby nie było, że nie działa: http://coliru.stacked-crooked.com/a/00c810f0fe2c136d |
|
Midas Temat założony przez niniejszego użytkownika |
» 2014-05-10 00:19:31 Nigdy jeszcze nie korzystałem z STL, a tym bardziej z map. Może to jest trywialne, nie wiem. W każdym razie dzięki za pomoc. |
|
« 1 » |