简介
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 using namespace std; //function to check if the frequency of occurrence of data is equivalent to other characters' frequencybool 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输出
Input String : tweeetHolds true for character e登录后复制
结论
C++ 字符串中的字符位置默认从第 0 个索引开始。字符串是一种动态长度存储结构,其中的字符可以轻松附加任意次。 C++ 字符串中的每个字符都与一个计数相关联,由其频率表示。映射数据结构非常有用,其中每个键都与一个确定的值相关联。
以上就是具有与给定字符串中其他字符频率之和相等的字符的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2582413.html