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

โปรแกรมค้นหาอักขระที่ใช้บ่อยเป็นอันดับสองใน C++


ในปัญหานี้เราได้รับสตริง str งานของเราคือสร้าง Program tofind อักขระที่สองบ่อยที่สุดในภาษา C++ .

มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน

อินพุต

str = “abaacabcba”

ผลลัพธ์

‘b’

แนวทางการแก้ปัญหา

เพื่อค้นหาอักขระที่บ่อยเป็นอันดับสองในสตริง เราจำเป็นต้องรักษาจำนวนอาร์เรย์การนับ ChatCount ที่ใช้ในการเก็บความถี่ของแต่ละอักขระในสตริง จากนั้นเมื่อใช้อาร์เรย์ เราจะพบอักขระที่มีความถี่สูงสุดและวินาทีสูงสุดในอาร์เรย์ และแสดงอักขระที่ใช้บ่อยเป็นอันดับสอง

โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา

ตัวอย่าง

#include <iostream>
#include <string.h>
using namespace std;
char findSecFreqChar(string str){
   int charFreq[256] = {0};
   for (int i = 0; i < str.length(); i++)
      (charFreq[str[i]])++;
      int maxFreq = charFreq[0], secFreq = charFreq[0];
      for (int i = 0; i < 256; i++){
         if (charFreq[i] > charFreq[maxFreq]){
            secFreq = maxFreq;
            maxFreq = i;
      }
      else if (charFreq[i] > charFreq[secFreq] &&
      charFreq[i] != charFreq[maxFreq])
      secFreq = i;
   }
   return secFreq;
}
int main(){
   string str = "tutorialspoint";
   char secFreqChar = findSecFreqChar(str);
   cout << "Second most frequent character of the string is"<<secFreqChar;
   return 0;
}

ผลลัพธ์

Second most frequent character of the string is i