Computer >> Máy Tính >  >> Lập trình >> C ++

In các ký tự có tần số lẻ theo thứ tự xuất hiện trong C ++

Trong vấn đề này, chúng tôi được cung cấp bởi người dùng chuỗi str. Và chúng tôi chỉ phải in những ký tự có tần số xuất hiện là số lẻ.

Để giải quyết vấn đề này, chúng ta phải tìm tổng tần suất xuất hiện của một ký tự trong một chuỗi. Và chỉ in các ký tự nhỏ của chuỗi có tần số xuất hiện lẻ.

Hãy lấy một ví dụ để hiểu rõ hơn về chủ đề -

Input : adatesaas.
Output : dte

Giải thích −Các ký tự có tần suất xuất hiện của chúng là -

a 4
d 1
t 1
e 1
s 2

Các ký tự có tần số lẻ là d, t, e.

Thuật toán

Bây giờ chúng ta hãy thử tạo một thuật toán để giải quyết vấn đề này -

Step 1 : Traverse the string and count the number of occurrences on characters of the string in an array.
Step 2 : Traverse the frequency array and print only those characters whose frequency of occurrence is odd.

Ví dụ

Hãy tạo một chương trình dựa trên thuật toán này -

#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;
}

Đầu ra

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