Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

พิมพ์ตัวอักษรที่มีความถี่คี่ตามลำดับที่ปรากฏใน C++

โจทย์

ให้สตริง ต้องการพิมพ์เฉพาะตัวอักษรที่มีความถี่เป็นจำนวนคี่ (Odd) ตามลำดับที่ปรากฏ

ตัวอย่าง: "adatesaas" → d, t, e (ความถี่: a=4, d=1, t=1, e=1, s=2)

อัลกอริทึม

Step 1: นับความถี่ตัวอักษรในอาร์เรย์ขนาด 26
Step 2: ลูปผ่านสตริง ถ้าความถี่ของตัวอักษรคี่ → พิมพ์

ตัวอย่างโค้ด C++

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

int main() {
    string str = "asdhfjdedsa";
    int n = str.length();
    int frequency[26];
    memset(frequency, 0, sizeof(frequency));
    for (int i = 0; i < n; i++)
        frequency[str[i] - 'a']++;
    for (int i = 0; i < n; i++) {
        if (frequency[str[i] - 'a'] % 2 == 1) {
            cout << str[i] << " , ";
        }
    }
    return 0;
}

ผลลัพธ์

d , h , f , j , d , e , d