C++ 牛群 字符串类型简单统计

2023-12-24 06:36

本文主要是介绍C++ 牛群 字符串类型简单统计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

约翰有 n
头奶牛。

每头奶牛的品种由一个小写字母表示,不同奶牛的品种可能不同。

请问,能否将这些奶牛分为两个非空的牛群,并使得每个牛群都恰好包含两种奶牛。

例如,如果一共有 5
头奶牛,品种依次为 aabcc,则可将它们分为两个牛群 ab 和 acc,其中,第 1
个牛群恰好包含 a、b 两个品种的奶牛,第 2
个牛群恰好包含 a、c 两个品种的奶牛。

输入格式
共一行,包含一个长度为 n
的由小写字母构成的字符串,其中第 i
个字符表示第 i
头奶牛的品种。

输出格式
如果可以将这些奶牛分为两个非空的牛群,并使得每个牛群都恰好包含两种奶牛,则输出 Yes,否则输出 No。

数据范围
前 4
个测试点满足 1≤n≤5

所有测试点满足 1≤n≤105

输入样例1:
ababa
输出样例1:
Yes
输入样例2:
aabcc
输出样例2:
Yes
输入样例3:
abbb
输出样例3:
No

思路:这道题就是字符串类型统计的。我们要理解想到满足题目的分法,就必须要至少有2个类型的牛,并且最多4种。
那么我们可以先统计不同类型的牛的有几种,存在count里。如果为大于4或者小于2直接输出No。如果为3,就统计这三种牛的个数,需要至少满足一种牛个数大于等于2,否则不够分。如果为2种,那么2种牛都必须大于等于2个。

#include <iostream>using namespace std;int main ()
{string s;cin>>s;int n[26] = {0};for(auto x : s) n[x - 'a'] ++;int count = 0;for(int i = 0; i < 26; i ++) if(n[i] != 0) count ++;// cout<<count;if(count > 4 || count < 2) {cout<<"No"<<endl;return 0;} else if(count == 3){int num = 0;for(int i = 0; i < 26; i++) {if(n[i] < 2 && n[i] != 0) {num ++;}if(num >= 3) {cout<<"No"<<endl;return 0;}}} else if(count == 2) {for(int i = 0; i < 26; i++) {if(n[i] < 2 && n[i] != 0) {cout<<"No"<<endl;return 0;}}}cout<<"Yes"<<endl;return 0;
}

这篇关于C++ 牛群 字符串类型简单统计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/530863

相关文章

Java实现按字节长度截取字符串

《Java实现按字节长度截取字符串》在Java中,由于字符串可能包含多字节字符,直接按字节长度截取可能会导致乱码或截取不准确的问题,下面我们就来看看几种按字节长度截取字符串的方法吧... 目录方法一:使用String的getBytes方法方法二:指定字符编码处理方法三:更精确的字符编码处理使用示例注意事项方

Pandas中统计汇总可视化函数plot()的使用

《Pandas中统计汇总可视化函数plot()的使用》Pandas提供了许多强大的数据处理和分析功能,其中plot()函数就是其可视化功能的一个重要组成部分,本文主要介绍了Pandas中统计汇总可视化... 目录一、plot()函数简介二、plot()函数的基本用法三、plot()函数的参数详解四、使用pl

Java中的StringBuilder之如何高效构建字符串

《Java中的StringBuilder之如何高效构建字符串》本文将深入浅出地介绍StringBuilder的使用方法、性能优势以及相关字符串处理技术,结合代码示例帮助读者更好地理解和应用,希望对大家... 目录关键点什么是 StringBuilder?为什么需要 StringBuilder?如何使用 St

C#如何调用C++库

《C#如何调用C++库》:本文主要介绍C#如何调用C++库方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录方法一:使用P/Invoke1. 导出C++函数2. 定义P/Invoke签名3. 调用C++函数方法二:使用C++/CLI作为桥接1. 创建C++/CL

Pandas统计每行数据中的空值的方法示例

《Pandas统计每行数据中的空值的方法示例》处理缺失数据(NaN值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是空值?为什么要统计空值?准备工作创建示例数据统计每行空值数量进一步分析www.chinasem.cn处

Java中字符串转时间与时间转字符串的操作详解

《Java中字符串转时间与时间转字符串的操作详解》Java的java.time包提供了强大的日期和时间处理功能,通过DateTimeFormatter可以轻松地在日期时间对象和字符串之间进行转换,下面... 目录一、字符串转时间(一)使用预定义格式(二)自定义格式二、时间转字符串(一)使用预定义格式(二)自

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

一文详解如何在Python中从字符串中提取部分内容

《一文详解如何在Python中从字符串中提取部分内容》:本文主要介绍如何在Python中从字符串中提取部分内容的相关资料,包括使用正则表达式、Pyparsing库、AST(抽象语法树)、字符串操作... 目录前言解决方案方法一:使用正则表达式方法二:使用 Pyparsing方法三:使用 AST方法四:使用字