牛妹和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;
}