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

In ký tự và tần suất theo thứ tự xuất hiện C++

Cho chuỗi chữ thường. In mỗi ký tự và tần suất theo thứ tự xuất hiện đầu tiên. Ví dụ: "jskdk" → j:1, s:1, k:2, d:1.

Mảng tần suất + duyệt chuỗi

Đếm tần suất vào mảng freq[26]. Duyệt chuỗi lần 2: nếu freq[c]>0 thì in c và freq[c], đặt freq[c]=0 để không in lại.

Ví dụ minh họa

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

int main() {
    string str = "tutorialspoint";
    int freq[26] = {0};
    
    for (char c : str) freq[c-'a']++;
    
    for (char c : str) {
        if (freq[c-'a'] > 0) {
            cout << c << '\t' << freq[c-'a'] << '\n';
            freq[c-'a'] = 0;
        }
    }
    return 0;
}

Kết quả

t	3
u	1
o	2
r	1
i	2
a	1
l	1
s	1
p	1
n	1