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