Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 두 번째로 자주 사용되는 문자를 찾는 프로그램

<시간/>

이 문제에서는 문자열 str이 제공됩니다. 우리의 임무는 C++에서 두 번째로 자주 사용되는 문자를 찾는 프로그램을 만드는 것입니다. .

문제를 이해하기 위해 예를 들어보겠습니다.

입력

str = “abaacabcba”

출력

‘b’

솔루션 접근 방식

문자열에서 두 번째로 많은 문자를 찾습니다. 문자열에서 각 문자의 빈도를 저장하는 데 사용되는 카운트 배열 chatCount를 유지해야 합니다. 그런 다음 배열을 사용하여 배열에서 max 및 secondMax 빈도를 가진 문자를 찾습니다. 그리고 두 번째로 많이 나오는 문자를 표시합니다.

우리 솔루션의 작동을 설명하는 프로그램

예시

#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