字母位置和频率奇偶相同的字母数量的奇偶性
在这个问题中,我们将计算频率和位置具有相同奇偶校验的字符的数量,并打印该数字的计数为奇数或偶数。
为了解决这个问题,我们可以找到字符串中每个字符的频率,并统计频率和位置具有相同奇偶校验的字符总数。之后,我们可以根据计数打印奇数或偶数答案。
问题陈述 - 我们给出了一个仅包含小写英文字母字符的字符串 alpha。我们需要检查字母位置和频率相同的字符数量是奇数还是偶数。
如果任何字符满足以下任何条件,则该字符具有相同的频率和字母位置奇偶性。
如果字符串中的字符频率为奇数,且字母位置也为奇数。
如果字符串中的字符频率是偶数,并且字母位置也是偶数。
示例
输入
alpha = "dbbabcdc"
输出
Even
说明
a的出现频率为1,位置也为1,因此奇偶校验相同,计数变为1。
d的频率为2,位置为4。因此,由于奇偶校验位相同,计数变为2。
计数值为 2,为偶数。
输入
alpha = "ppqqr"
输出
Odd
说明 – 只有‘p’的奇偶校验相同。因此,计数为 1,答案为奇数。
输入
alpha = "pqqqqrrr";
输出
Even
说明 - 任何字符的奇偶校验都不相同。因此,由于计数值为零,它会打印“Even”。
方法 1
在这种方法中,我们将使用映射数据结构来存储每个字符串字符的频率。之后,我们将统计字母位置和频率中具有相同奇偶性的字符的数量。
算法
第 1 步 - 定义长度为 27 的 count[] 数组并用 0 初始化。此外,用 0 初始化“奇偶校验”。
第 2 步 - 将字符频率存储在 count[] 数组中。
第 3 步 - 进行 26 次迭代以遍历每个小写字母字符。
步骤4 - 如果count[p]大于0,检查字符频率和位置是否具有相同的奇偶校验。如果是,则将“奇偶校验”值增加 1。
第 5 步 - 最后,如果奇偶校验可被 2 整除,则返回“Even”。否则,返回“奇数”。
示例
#include <bits/stdc++.h> using namespace std; string getParity(string alpha) { // To store the count of characters int count[27] = {0}; int parity = 0; // Count frequency of each character for (int p = 0; p < alpha.size(); p++) { count[alpha[p] - 'a' + 1]++; } for (int p = 1; p <= 26; p++) { if (count[p] != 0) { // Increment parity for valid odd and even parity if (p % 2 == 0 && count[p] % 2 == 0 || p % 2 == 1 && count[p] % 2 == 1) parity++; } } // Return value based on final parity count if (parity % 2 == 1) return "ODD"; else return "EVEN"; } int main() { string alpha = "dbbabcdc"; cout << "The parity of given string's character's is " << getParity(alpha); return 0; }
输出
The parity of given string's character's is EVEN
时间复杂度 - O(N) 用于计算字符的频率。
空间复杂度 - O(26) ~ O(1) 来存储字母字符的频率。
方法2
在这种方法中,我们将对给定的字符串进行排序。之后,每当我们得到不同的相邻字符时,我们都会检查前一个字符的频率和位置的奇偶性。
算法
第 1 步 - 将“奇偶校验”初始化为 0。
第 2 步 - sort() 方法用于对给定字符串进行排序。
第3步 - 开始遍历字符串,并将‘charCnt’初始化为0以存储当前字符的频率。
步骤 4 - 如果当前字符与下一个字符不同,请检查“charCnt”的奇偶校验和字符位置是否匹配。如果是,则将“奇偶校验”增加 1。
第 5 步 - 如果当前字符与前一个字符相同,则将“charCnt”增加 1。
第 6 步 - 最后,如果“奇偶校验”值为偶数,则返回“Even”。否则,返回“奇数”。
示例
#include <bits/stdc++.h> using namespace std; string getParity(string alpha) { int parity = 0; // Sort the string sort(alpha.begin(), alpha.end()); // Traverse the string for (int p = 0; p < alpha.size(); p++) { int charCnt = 0; // When we get different adjacent characters if (alpha[p] != alpha[p + 1]) { // Validating the odd and even parties if (charCnt % 2 == 1 && (alpha[p] - 'a' + 1) % 2 == 1 || charCnt % 2 == 0 && (alpha[p] - 'a' + 1) % 2 == 0) parity++; } else { charCnt++; } } if (parity % 2 == 1) return "ODD"; else return "EVEN"; } int main() { string alpha = "abbbccdd"; cout << "The parity of given string's character's is " << getParity(alpha); return 0; }
输出
The parity of given string's character's is EVEN
时间复杂度 - O(NlogN) 用于对字符串进行排序。
空间复杂度 - O(N) 对字符串进行排序。
第一种方法采用常量空间,而第二种方法采用动态空间对给定字符串进行排序。另外,第二种方法的时间成本较高,因此建议使用第一种方法以获得更好的性能。
以上是字母位置和频率奇偶相同的字母数量的奇偶性的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

环境变量功能是系统中的配置程序运行必备工具,但是在最新的win11系统中还有许多的用户不知道怎么设置打开,下面就给你们带来了win11环境变量打开位置详细介绍,快来一起学习操作一下吧。win11环境变量在哪:1、首先输入“win+R”,打开运行框。2、然后在里面输入命令:controlsystem。3、在打开的系统信息界面中,选择左侧菜单的“高级系统设置”。4、随后在打开的“系统属性”窗口选择下方的“环境变量”选项。5、最后在打开的环境变量中,即可根据需求进行相关的设置。

每一个Windows系统都有一个启动路径,如果你在其中添加了文件或软件,就会在开机的时候打开它。不过不少朋友不知道win11启动路径在哪里,其实我们只需要进入C盘的对应文件夹就可以了。win11启动路径:1、双击打开“此电脑”2、直接将该路径“C:\ProgramData\Microsoft\Windows\StartMenu\Programs\Startup”粘贴进路径框。3、这里就是win11启动路径了,如果我们要开机打开文件就可以将文件放进来。4、如果你根据这个路径进不来,可能是被隐藏了。

Steam是PC游戏玩家中最受欢迎的应用程序之一,因为您可以在Steam商店中找到任何主要游戏。它通过其用户界面简化了用户喜爱的游戏的下载、安装和管理。每当Steam用户想要下载游戏时,Steam都会使用应用程序的默认安装目录来下载和安装游戏。此位置默认为C:\ProgramFiles(x86)\Steam。问题来了,因为大多数用户在C盘上没有足够的空间,特别是对于占用大量存储空间的游戏,例如50–100GB。为了克服这个问题,Steam允许用户使用应用程序更改游戏的下载和

凭证管理器是用户用于管理web凭证和Windows凭据的一个作用,可是很多用户还不清楚windows10凭证管理器在哪里。其实凭证管理器就在操作面板上,大家在打开控制面板以后记得将查看方法改成小图标,那样就能见到凭证管理器了,点击查看就能查看各类信息了,如果想要查看大量,就需要输入账户密码。windows10凭证管理器在哪里:1、在系统中打开控制面板,点击右上角的查看方法,将类型转换成小图标。2、以小图标的方式查看以后,点击“凭证管理器”。3、进来凭证管理器以后,能够看见有关作用的介绍,主要用于

内存是计算机中非常重要的组件之一,它对计算机的性能和稳定性有着重要影响。在选择内存时,人们往往会关注两个重要的参数,即时序和频率。那么,对于内存性能来说,时序和频率哪个更重要呢?首先,我们来了解一下时序和频率的概念。时序指的是内存芯片在接收和处理数据时所需的时间间隔。它通常以CL值(CASLatency)来表示,CL值越小,内存的处理速度越快。而频率则是内

星穹铁道克劳克影视乐园总共有20只折纸小鸟,有很多玩家不知道克劳克影视乐园折纸小鸟在哪,小编已经把每只折纸小鸟位置全部都总结出来了,帮助大家进行寻找,具体内容一起来看看这篇克劳克影视乐园折纸小鸟位置最新汇总。崩坏星穹铁道攻略大全星穹铁道克劳克影视乐园折纸小鸟位置1、克劳克影视乐园一层2、克劳克影视乐园二层

深入了解pip安装的包存放位置,需要具体代码示例pip是Python语言常用的包管理工具,用于方便地安装、升级和管理Python包。在使用pip安装包时,它会自动从PyPI(Python包索引)下载对应的包文件,并将其安装到指定的位置。那么,pip安装的包究竟存放在哪里呢?这是很多Python开发者都会遇到的问题。本文将深入探讨pip安装的包存放位置,并提供

如果我们要长时间离开电脑,那么最好将电脑关机保护它,那么win11关机在哪里呢,其实一般来说只要打开开始菜单,在其中就可以找到关机按钮了。win11关机在哪里:答:在开始菜单的电源按钮里。1、首先我们点击底部任务栏的“windows徽标”打开“开始菜单”2、打开后,可以在右下角找到“电源”按钮,如图所示。3、点击电源按钮后,就能看到“关机”了,点击它就能关机。4、如果因为死机等特殊情况无法关机,那么可以直接用电脑上的“电源键”长按强制关机。
