Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm và in các từ trùng lặp trong std ::vector bằng các hàm STL sử dụng C ++.

Hãy xem xét chúng ta có một danh sách các chuỗi. Danh sách có một số chuỗi trùng lặp. Chúng tôi phải kiểm tra chuỗi nào đã xảy ra nhiều hơn một lần. Giả sử danh sách chuỗi giống như [“Hello”, “Kite”, “Hello”, “C ++”, “Tom”, “C ++”]

Ở đây chúng ta sẽ sử dụng kỹ thuật băm, vì vậy hãy tạo một bảng băm trống, sau đó duyệt từng chuỗi và đối với mỗi chuỗi, s đã có trong hàm băm, sau đó hiển thị chuỗi, nếu không hãy chèn vào bảng băm.

Ví dụ

#include<iostream>
#include<vector>
#include<unordered_set>
using namespace std;
void displayDupliateStrings(vector<string> strings) {
   unordered_set<string> s;
   bool hasDuplicate = false;
   for (int i = 0; i<strings.size(); i++) {
      if (s.find(strings[i]) != s.end()) {
         cout << strings[i] << endl;
         hasDuplicate = true;
      }
      else
         s.insert(strings[i]);
   }
   if (!hasDuplicate)
      cout << "No Duplicate string has found" << endl;
}
int main() {
   vector<string>strings{"Hello", "Kite", "Hello", "C++", "Tom", "C++"};
   displayDupliateStrings(strings);
}

Đầu ra

Hello
C++