Loading Now

[STLC++_Map] mergeProducts

STL C++ Map

Đề bài:

Cho danh sách các sản phẩm của 2 kho hàng AB. Do chiến lược kinh doanh bạn được giao nhiệm nhập các sản phẩm từ kho B vào kho A sao cho những sản phẩm nào đã có trong kho A thì không nhập.

Ví dụ:

  • Với A = ["Banana", "Banana", "Apple"],
    B = ["Orange", "Apple", "Orange", "Watermelon"],
    thì mergeProducts(A, B) = [true, false, false, true].

Lưu ý: Sản phẩm thứ 3 trong kho B"Orange" sẽ không được nhập vì trong kho A đã có một sản phẩm như vậy.

Hướng dẫn.

Dùng hàm find() để kiểm tra sử xuất hiện của phần tử.

vector<int> mergeProducts(vector<string> A, vector<string> B){
    map <string, int> cnt;
    for (auto x : A)
    {
        cnt[x]++;
    }  
    vector <int> ans;
    for (auto x : B)
    {
        if (cnt[x] == 0)
        {
            ans.push_back(true);
            cnt[x]++;
        } else {
            ans.push_back(false);
        }
    }
    return ans;
}

Post Comment

Contact