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

In các ký tự và tần số của chúng theo thứ tự xuất hiện trong C ++


Vấn đề này, Chúng tôi được cung cấp một chuỗi các ký tự viết thường. và chúng ta phải tìm tần số của mỗi ký tự xuất hiện trong chuỗi. ví dụ dưới đây khi giải thích thêm về vấn đề.

Input : “jskdk”
Output :
j 1
s 1
k 2
d 1

Giải thích - Trong Chuỗi, các ký tự j, s, d xảy ra một lần và k xảy ra hai lần. Do đó, kết quả được in ra cho kết quả trên.

Bây giờ chúng ta hãy tạo ra một logic để giải quyết vấn đề này. Như đã nói, chúng ta phải tìm tần suất xuất hiện của mỗi ký tự trong chuỗi. Một cách hợp lý là duyệt qua chuỗi và đếm tần suất xuất hiện của một ký tự và lưu trữ nó trong một mảng, sau đó in ký tự đó cùng với tần suất xuất hiện của chúng.

Thuật toán

Step 1 : Create an array of size 26 that stores the frequency of characters in the string.
Step 2 : print all the characters along with their frequency of occurrence from the array.

Ví dụ

Bây giờ, hãy tạo một chương trình để tìm giải pháp cho vấn đề này,

#include <bits/stdc++.h>
using namespace std;
int main(){
   string str = "tutorialspoint";
   int n = str.size();
   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'] != 0) {
         cout<<str[i]<<"\t"<<frequency[str[i] - 'a']<<"\n";
         frequency[str[i] - 'a'] = 0;
      }
   }
   return 0;
}

Đầu ra

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