Rumah >pembangunan bahagian belakang >C++ >mempunyai aksara yang sama dengan jumlah frekuensi aksara lain dalam rentetan yang diberikan

mempunyai aksara yang sama dengan jumlah frekuensi aksara lain dalam rentetan yang diberikan

WBOY
WBOYke hadapan
2023-09-11 09:53:03565semak imbas

mempunyai aksara yang sama dengan jumlah frekuensi aksara lain dalam rentetan yang diberikan

Pengenalan

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

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

Tatabahasa

str.length()

Panjang()

Kaedah length() dalam C++ digunakan untuk mengira bilangan aksara dalam rentetan.

Algoritma

  • 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.

Contoh

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;
}

Output

Input String : tweeet
Holds true for character e

Kesimpulan

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam