কম্পিউটার

C++ তে অক্ষর এবং তাদের ফ্রিকোয়েন্সি প্রিন্ট করুন


এই সমস্যা, আমাদের ছোট হাতের অক্ষরের একটি স্ট্রিং দেওয়া হয়েছে। এবং আমাদের প্রতিটি অক্ষরের ফ্রিকোয়েন্সি খুঁজে বের করতে হবে যা স্ট্রিং-এ ঘটে। সমস্যা সম্পর্কে আরও ব্যাখ্যা করার সময় নীচের উদাহরণ।

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

ব্যাখ্যা − স্ট্রিং-এ, j, s, d অক্ষরগুলি একবার হয় এবং k দুইবার হয়। তাই, প্রিন্ট করা আউটপুট উপরের ফলাফল দেয়।

এখন এই সমস্যা সমাধানের জন্য একটি যুক্তি তৈরি করা যাক। যেমন বলা হয়েছে আমাদের স্ট্রিং-এর প্রতিটি অক্ষরের সংঘটনের ফ্রিকোয়েন্সি খুঁজে বের করতে হবে। একটি যৌক্তিক উপায় হল স্ট্রিংটি অতিক্রম করা এবং একটি অক্ষরের সংঘটনের ফ্রিকোয়েন্সি গণনা করা এবং এটি একটি অ্যারেতে সংরক্ষণ করা এবং তারপর অক্ষরটিকে তাদের সংঘটনের ফ্রিকোয়েন্সি সহ মুদ্রণ করা।

অ্যালগরিদম

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.

উদাহরণ

এখন, এই সমস্যার সমাধান খুঁজতে একটি প্রোগ্রাম তৈরি করা যাক,

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

আউটপুট

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

  1. C++ এ বর্ণানুক্রমিক ক্রমে দুটি স্ট্রিং-এর সাধারণ অক্ষর প্রিন্ট করুন

  2. C++ এ getline (স্ট্রিং)

  3. C++ অবরোহী ক্রমে স্ট্রিং সাজানো

  4. স্ট্রিং এর প্রথম এবং শেষ অক্ষর সমান কিনা তা পরীক্ষা করার জন্য C++ প্রোগ্রাম