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

In ký tự chung của hai chuỗi theo thứ tự bảng chữ cái C++

Cho hai chuỗi. In các ký tự chung (xuất hiện ở cả hai) theo thứ tự a-z. Nếu không có ký tự chung, in "No common characters". Ví dụ: "adsfhslf" và "fsrakf" → a,f,f,s (a,f,s chung, f xuất hiện 2 lần ở chuỗi 2).

Mảng đếm 26 chữ cái

Đếm freq1[26], freq2[26]. Duyệt i=0..25: in ký tự 'a'+i lặp min(freq1[i], freq2[i]) lần.

Ví dụ minh họa

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

int main() {
    string s1 = "adjfrdggs";
    string s2 = "gktressd";
    
    int f1[26] = {0}, f2[26] = {0};
    for (char c : s1) f1[c-'a']++;
    for (char c : s2) f2[c-'a']++;
    
    cout << "Ky tu chung: ";
    for (int i = 0; i < 26; i++) {
        int cnt = min(f1[i], f2[i]);
        while (cnt--) cout << char('a'+i);
    }
    return 0;
}

Kết quả

Ky tu chung: dgrs