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

Chương trình tìm ký tự thường xuyên thứ hai trong C ++

Trong bài toán này, chúng ta được cung cấp chuỗi str. Nhiệm vụ của chúng tôi là tạo Chương trình tìm kiếm ký tự thường xuyên thứ hai trong C ++ .

Hãy lấy một ví dụ để hiểu vấn đề

Đầu vào

str = “abaacabcba”

Đầu ra

‘b’

Phương pháp tiếp cận giải pháp

Để tìm ký tự thường xuyên thứ hai trong chuỗi. Chúng ta cần có một chatCount mảng đếm được sử dụng để lưu trữ tần số của từng ký tự trong chuỗi. Và sau đó sử dụng mảng, chúng ta sẽ tìm ký tự có tần số max và secondMax trong mảng. Và hiển thị ký tự thường xuyên thứ hai.

Chương trình minh họa hoạt động của giải pháp của chúng tôi

Ví dụ

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

Đầu ra

Second most frequent character of the string is i