Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm ký tự không chung của hai chuỗi C++


Cho 2 chuỗi, tìm các ký tự chỉ xuất hiện ở một trong hai (symmetric difference).

Kết quả = (A - B) ∪ (B - A).

Chương trình C++ (dùng frequency array)

#include <bits/stdc++.h>
using namespace std;

string uncommonChars(string A, string B) {
    vector freqA(256,0), freqB(256,0);
    for (char c : A) freqA[(unsigned char)c]++;
    for (char c : B) freqB[(unsigned char)c]++;
    
    string res;
    for (int i = 0; i < 256; i++) {
        if ((freqA[i] > 0) != (freqB[i] > 0)) // XOR logic
            res += char(i);
    }
    return res;
}

int main() {
    string s1 = "afbde", s2 = "wabq";
    cout << "Uncommon chars: " << uncommonChars(s1, s2) << "\n";
    return 0;
}

Kết quả

Uncommon chars: fdewq

Thứ tự có thể khác do duyệt theo mã ASCII. Có thể sort kết quả nếu cần.