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