Trong hướng dẫn này, chúng ta sẽ học cách tìm các ký tự khác nhau từ hai chuỗi đã cho. Hãy xem một ví dụ.
Đầu vào
string_one = "tutorialspoint" string_two = "tutorialsworld"
Đầu ra
d n p w
Chúng tôi sẽ sử dụng băm để giải quyết vấn đề. Nó hiệu quả hơn việc viết hai vòng lặp lồng nhau
Hãy xem các bước để giải quyết chương trình.
-
Khởi tạo hai chuỗi với một số giá trị ngẫu nhiên.
-
Khởi tạo bản đồ dưới dạng bản đồ
ký tự. -
Lặp lại chuỗi đầu tiên và chèn từng ký tự vào bản đồ với giá trị 1.
-
Bây giờ, hãy lặp lại chuỗi thứ hai.
-
Kiểm tra xem ký tự đã có mặt hay chưa.
-
Nếu có, hãy gán 0 cho nó.
-
Nếu không có, hãy chèn ký tự có giá trị 1.
-
-
Lặp lại trên bản đồ và in các ký tự có giá trị 1.
Ví dụ
Xem mã bên dưới.
#include <bits/stdc++.h> #include <map> using namespace std; void findDistinctCharacters(string one, string two){ // initializing char presence in string map<char, int> chars; // iterating over the first string for (int i = 0; i < one.size(); ++i){ // inserting every character into map chars.insert({one[i], 1}); } // iterating over the second string for (int i = 0; i < two.size(); ++i){ // checking whether the current char in string or not if (chars.count(two[i])) { // assigning 0 for common chars chars.find(two[i])->second = 0; } else { // insering new chars chars.insert({two[i], 1}); } } // printing the distinct characters for (auto item: chars){ // checking the presence if (item.second == 1) { // printing the distinct char cout << item.first << " "; } } } int main(){ string one = "tutorialspoint"; string two = "tutorialsworld"; findDistinctCharacters(one, two); return 0; }
Đầu ra
Nếu bạn chạy đoạn mã trên, bạn sẽ nhận được kết quả sau.
d n p w
Kết luận
Nếu bạn có bất kỳ câu hỏi nào trong hướng dẫn, hãy đề cập đến chúng trong phần bình luận.