#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1303
//水题,0串或1串,较小。
int main()
{
int t,i,n;
char num[105];
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
scanf("%s",num);
int count0=0,count1=0;
for(i=0;i<strlen(num)-1;i++)
{
if(num[i]!=num[i+1]&&num[i]=='0')
count0++;
else if(num[i]!=num[i+1]&&num[i]=='1')
count1++;
}
if(num[strlen(num)-1]=='0')
count0++;
else
count1++;
if(count0>count1)
printf("%d\n",count1);
else
printf("%d\n",count0);
}
return 0;
}
#include <stdlib.h>
#include <string.h>
// http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1303
//水题,0串或1串,较小。
int main()
{
int t,i,n;
char num[105];
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
scanf("%s",num);
int count0=0,count1=0;
for(i=0;i<strlen(num)-1;i++)
{
if(num[i]!=num[i+1]&&num[i]=='0')
count0++;
else if(num[i]!=num[i+1]&&num[i]=='1')
count1++;
}
if(num[strlen(num)-1]=='0')
count0++;
else
count1++;
if(count0>count1)
printf("%d\n",count1);
else
printf("%d\n",count0);
}
return 0;
}
本文展示了一种解决ACM编程竞赛中特定类型问题的方法,通过统计字符串中0和1的交替出现次数来确定最小操作数。使用C语言实现,并通过输入测试案例验证算法的有效性。
1408

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



