Задача 2 Odd Occurrences
Здравейте, нещо блокирах на 2-ра задача от асоциативните контейнери. Дава ми грешен отговор на тест1 и тест4. Време и памет са ок.
#include <iostream>
#include <map>// въпреки, че не ги ползвам пробвах едно решение с тях и не ми хареса...
#include <unordered_map>
#include <vector>
#include <string>
#include <sstream>
using namespace std;
int main (){
setlocale(LC_ALL,"bulgarian");// абсолютно ненужно
string str;
getline(cin, str);
stringstream ss;
vector<pair <string, int>> myVector;
ss << str;
string temp;
while (!ss.eof()) {
ss >> temp;
string lowString="";
bool is_exist=false;
// следва превръщане в малки букви
for(int i=0;i<temp.size();i++ ){
lowString+=tolower(temp[i]);
}/// следва проверка дали вече има подобен стринг
for (int i=0;i<myVector.size();++i ){
if( myVector[i].first==lowString){
myVector[i].second++;/// ако го има увеличавам втория пейр и брейквам, няма смисъл да продължавам да търся
is_exist=true;break;}
}
if (is_exist==false){myVector.push_back(make_pair(lowString, 1));}///ако го няма създавам нова двойка във вектора
}
/// следва печат, не знам дали има друг метод, за добавяне на запетайки, без да се добави на последния елемент
vector<string> outVector;
for (int i=0;i<myVector.size();i++){
if (myVector[i].second%2==1){outVector.push_back(myVector[i].first);}
}
for (int i=0;i<outVector.size()-1;i++){
cout<<outVector[i]<<", ";
}
cout<<outVector[outVector.size()-1]<<endl;
}