โจทย์
ให้สตริง ต้องการพิมพ์เฉพาะตัวอักษรที่มีความถี่เป็นจำนวนคี่ (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