牛妹和01串
题目描述
牛妹有一个
01串,串中只包含0和1,牛妹要把这个串划分成连续的m段,使得每一段至少包含一个0和一个1。
牛妹想最大化m,m最大是多少呢?
输入描述:
输入包含一行一个
01串S。保证中至少包含一个0和一个1。
输出描述:
输出一行一个整数表示答案。
示例1
输入
10101111000010101111010101
输出
9
说明
- 2≤∣S∣≤1e5
- ∣S∣表示字符串{S}S的长度。
| 思路:贪心 |
#include<iostream>
#include<string>
using namespace std;
string s;
int main(){
cin >> s;
int i = 0, j = 0 , res = 0;
for(char ch : s){
if(ch == '0') i++;
if(ch == '1') j++;
if(i * j) {
res++; i = 0,j = 0;
}
}
cout << res << endl;
return 0;
}
本文介绍了一个关于01串的划分问题,目标是将一个包含0和1的字符串划分为尽可能多的子串,每个子串都必须同时包含0和1。通过贪心算法实现了这一目标,并提供了完整的C++代码实现。
3461

被折叠的 条评论
为什么被折叠?



