首页 > 其他 > 详细

平衡的字符串(思维)

时间:2021-05-30 10:39:25      阅读:17      评论:0      收藏:0      [点我收藏+]

平衡的字符串

#include <bits/stdc++.h>
using namespace std;

const int N = 1e6 + 10;

char str[N];
bool vis[N];
int main(){
	int n, k;
	scanf("%d%d", &n, &k);
	scanf("%s", str + 1);
	if(k % 2 == 1){
		cout << "No" << endl;
		return 0;
	}
	for(int i = 1; i <= k; i ++){
		bool one = false, zero = false;
		for(int j = i; j <= n; j += k){
			if(str[j] == ‘1‘)
				one = true;
			if(str[j] == ‘0‘)
				zero = true;
		}
		if(one && zero){
			cout << "No" << endl;
			return 0;
		}
		if(one){
			for(int j = i; j <= n; j += k)
				str[j] = ‘1‘;
		}else if(zero)
			for(int j = i; j <= n; j += k)
				str[j] = ‘0‘;
	}
	int cnt2 = 0, cnt0 = 0, cnt1 = 0;
	for(int i = 1; i <= k; i ++){
		if(str[i] == ‘0‘)
			cnt0 ++;
		if(str[i] == ‘1‘)
			cnt1 ++;
		if(str[i] == ‘?‘)
			cnt2 ++;
	}
	if(abs(cnt0 - cnt1) > cnt2){
		cout << "No" << endl;
		return 0;
	}
	cout << "Yes" << endl;
	return 0; 
}

平衡的字符串(思维)

原文:https://www.cnblogs.com/pureayu/p/14826868.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!