ในปัญหานี้เราได้รับสตริง 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