C 字串是字母數字字元流。字串具有以下屬性 -
字串由一組固定的字元組成
字串位置預設從第 0 個索引開始
任何字元的頻率是指它在字串中出現的次數。任何字元的頻率範圍可以從 0 (如果它沒有出現到字串的長度)。
在本文中,我們將開發一個程式碼,該程式碼將字串作為輸入,並檢查任何字元的頻率是否等於字串中所有其他字元的頻率總和。讓我們看下面的例子來更好地理解這個主題
範例 1 - str - “@!ab@!”
輸出 - 真
例如下面的範例字串,也包含特殊字符,其中每個字符對應的頻率如下 -
@=4
! = 2
a=1
b = 1
因此,以下字串具有以下適用屬性
頻率(@) = 頻率(!) 頻率(a) 頻率(b)
4 = 2 1 1
在本文中,我們將建立一個解決方案來計算字串中每個字元出現的次數,並進一步檢查是否存在具有所需頻率計數的字元
str.length()
C 中的length()方法用於計算字串中的字元數。
接受輸入字串 str
建立一個包含 26 個字母的陣列來儲存字元的出現頻率。它用計數 0 初始化,由 freq 陣列指定
使用length()方法計算字串的長度,記為len
如果字串長度為奇數,則傳回 false flag
每次擷取第 i 個位置的字元
該字元的出現頻率加 1。
計算完字串的整個長度後,檢查頻率陣列
#如果某個字元的頻率等於其他字元的頻率總和,則傳回布林標誌值 true。
下面的C 程式碼片段用於檢查給定的輸入字串中是否有任何字元出現的頻率分別等於所有字元的頻率總和 -
//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
C 字串中的字元位置預設從第 0 個索引開始。字串是一種動態長度儲存結構,其中的字元可以輕鬆附加任意次。 C 字串中的每個字元都與一個計數相關聯,由其頻率表示。映射資料結構非常有用,其中每個鍵都與一個確定的值相關聯。
以上是具有與給定字串中其他字元頻率之和相等的字符的詳細內容。更多資訊請關注PHP中文網其他相關文章!