森近林之助【字符串处理】

版权声明:欢迎借鉴,谢绝抄搬。 https://blog.csdn.net/ssllyf/article/details/83687105

森近林之助

在这里插入图片描述

题目大意

输入n个字符串,每一位总共要出现两个“1”,一个“0”,求最少要加多少个字符串才能满足条件

解题思路:

这题就是将每一位出现“1”和“0”的次数加在一起,看每一位缺多少个数字,求最大的就是结果.

#include<cstdio>
#include<string>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int n,ans,sum,b[101],c[101];
string a;
int main()
{
	scanf("%d",&n);
	getchar();
	for (int i=1;i<=n;i++)
	  {
	  	getline(cin,a);
	  	for (int j=0;j<a.size();j++)
	  	  if (a[j]=='1') b[j]++;//判断是“1”还是“0”,是“1”加到b里
	  	    else c[j]=1;//是“0”加到c里
	  }
	for (int i=0;i<a.size();i++)
	  {
	  	if (b[i]>2) b[i]=2;//当前位的“1”超过2次时当作2次(合格)
	  	sum=3-c[i]-b[i];//sum代表差多少
	  	ans=max(ans,sum);//求最大值
	  }
	printf("%d",ans);
}

猜你喜欢

转载自blog.csdn.net/ssllyf/article/details/83687105
今日推荐