Đếm số lần xuất hiện của từng ký tự trong xâu

Lập trình C++

Bài toán. Đếm số lần xuất hiện của mỗi ký tự trong xâu s. Sắp xếp các ký tự và số lần xuất hiện theo thứ tự tăng. Ví dụ:

DEMKT.INP

DEMKT.OUT

abceacbde

a 2

b 2

c 2

d 1

e 2

Code tham khảo:

#include <iostream>
#include <cstring>
using namespace std;
int main() {
    freopen("DEMKT.INP","r",stdin);
    freopen("DEMKT.OUT","w",stdout);
    string s;
    getline(cin, s);
    for(int i=0;i<=s.length()-2;i++)
        for(int j=i+1;j<=s.length()-1;j++)
            if(s[i] >= s[j]) {
                int temp = s[i];
                s[i] = s[j];
                s[j] = temp;
            }
    int dem = 1;
    for(int i=0;i<=s.length()-1;i++)
        if(s[i] == s[i+1]) dem++;
        else {
            cout<<s[i]<<" "<<dem<<endl;
            dem = 1;
        }
    return 0;
}

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *