Rumah >pembangunan bahagian belakang >C++ >mempunyai aksara yang sama dengan jumlah frekuensi aksara lain dalam rentetan yang diberikan
Rentetan C++ ialah aliran aksara alfanumerik. Rentetan mempunyai sifat berikut -
Rentetan terdiri daripada set aksara tetap
Kedudukan rentetan bermula dari indeks ke-0 secara lalai
Kekerapan mana-mana aksara merujuk kepada bilangan kali ia muncul dalam rentetan. Kekerapan mana-mana aksara boleh berjulat dari 0 (jika ia tidak berlaku) hingga panjang rentetan.
Dalam artikel ini, kami akan membangunkan kod yang mengambil rentetan sebagai input dan menyemak sama ada kekerapan mana-mana aksara adalah sama dengan jumlah frekuensi semua aksara lain dalam rentetan. Mari lihat contoh di bawah untuk memahami topik ini dengan lebih baik
Contoh 1 - str - "@!ab@!"
output - benar
Sebagai contoh, rentetan contoh berikut juga mengandungi aksara khas, dan kekerapan yang sepadan bagi setiap aksara adalah seperti berikut -
@=4
! = 2
a=1
b = 1
Oleh itu, rentetan berikut mempunyai sifat terpakai berikut
Kekerapan(@) = kekerapan(!) + kekerapan(a)+kekerapan(b)
4 = 2 + 1 + 1
Dalam artikel ini, kami akan mencipta penyelesaian untuk mengira bilangan kejadian setiap aksara dalam rentetan dan semak selanjutnya jika terdapat aksara dengan kiraan kekerapan yang diperlukan
str.length()
Kaedah length() dalam C++ digunakan untuk mengira bilangan aksara dalam rentetan.
Terima rentetan input str
Buat tatasusunan yang mengandungi 26 huruf untuk menyimpan kekerapan kemunculan aksara. Ia dimulakan dengan kiraan 0, ditentukan oleh tatasusunan freq
Gunakan kaedah length() untuk mengira panjang rentetan, direkodkan sebagai len
Jika panjang rentetan ialah nombor ganjil, kembalikan bendera palsu
Ekstrak watak pada kedudukan ke-i setiap kali
Kekerapan kemunculan watak ini meningkat sebanyak 1.
Selepas mengira keseluruhan panjang rentetan, semak tatasusunan frekuensi
Jika kekerapan aksara adalah sama dengan jumlah frekuensi aksara lain, mengembalikan nilai bendera Boolean benar.
Coretan kod C++ berikut digunakan untuk menyemak sama ada mana-mana aksara dalam rentetan input tertentu berlaku dengan frekuensi yang sama dengan jumlah frekuensi semua aksara masing-masing -
//including the required libraries #include <bits/stdc++.h> using namespace std; //function to check if the frequency of occurrence of data is equivalent to other characters' frequency bool charwithequalFreq(string str) { //storing the frequency of characters int freq[26] = { 0 }; //length of string int len = str.length(); //if the length of the string is odd if (len % 2 == 1) return false; // Update the frequencies of the characters for (int i = 0; i < len; i++){ char ch = str[i]; freq[ch - 'a']+=1; } for (int i = 0; i < 26; i++) if (freq[i] == len / 2) { cout<<"Holds true for character "<<(char)(i+'a') <<"\n"; return true; } //none of the cases hold true return false; } //calling the frequency method int main() { //input string string str = "tweeet"; cout<< "Input String : "<<str<<"\n"; //check the frquency bool res = charwithequalFreq(str); if(!res){ cout<<"There is no such character"; } return 0; }
Input String : tweeet Holds true for character e
Kedudukan aksara dalam rentetan C++ bermula dari indeks ke-0 secara lalai. Rentetan ialah struktur storan panjang dinamik di mana aksara boleh ditambah dengan mudah dalam beberapa kali. Setiap aksara dalam rentetan C++ dikaitkan dengan kiraan, diwakili oleh kekerapannya. Pemetaan struktur data berguna di mana setiap kunci dikaitkan dengan nilai yang pasti.
Atas ialah kandungan terperinci mempunyai aksara yang sama dengan jumlah frekuensi aksara lain dalam rentetan yang diberikan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!