这个怎么做啊!!!
这个怎么做啊!!!Description爱美之心人皆有之,GG也不例外。所以GG他对于完美串有一种热衷的爱。在GG眼中完美串是一个具有无比魅力的01子串。这个子串有之其魅...
这个怎么做啊!!!Description
爱美之心人皆有之,GG也不例外。所以GG他对于完美串有一种热衷的爱。在GG眼中完美串是一个具有无比魅力的01子串。这个子串有之其魅力之处,对它取反后水平翻转,它又和它原来的一模一样。这就是GG热爱它的原因。但是世上并不是所有的01串都是完美串,所以GG下定决心想改造01串,使所有的01串都成为完美串。但是改造01串是一个巨大的工程,GG太忙了,他还差T个01串未改造,他需要你的帮助。而你只需要告诉它至少添加几个'0','1'字符就可以使得01串成为完美串。
Input
有T组数据输入。(T<=100)
每组数据只有两行,第一行一个正整数n(1<=n<=1000),接下来一行是一个01字符串,长度为n。
Output
对于每组数据输出一行结果
Sample Input
2
4
1001
3
111
Sample Output
2
3
HINT 展开
爱美之心人皆有之,GG也不例外。所以GG他对于完美串有一种热衷的爱。在GG眼中完美串是一个具有无比魅力的01子串。这个子串有之其魅力之处,对它取反后水平翻转,它又和它原来的一模一样。这就是GG热爱它的原因。但是世上并不是所有的01串都是完美串,所以GG下定决心想改造01串,使所有的01串都成为完美串。但是改造01串是一个巨大的工程,GG太忙了,他还差T个01串未改造,他需要你的帮助。而你只需要告诉它至少添加几个'0','1'字符就可以使得01串成为完美串。
Input
有T组数据输入。(T<=100)
每组数据只有两行,第一行一个正整数n(1<=n<=1000),接下来一行是一个01字符串,长度为n。
Output
对于每组数据输出一行结果
Sample Input
2
4
1001
3
111
Sample Output
2
3
HINT 展开
2个回答
展开全部
算法依据: 只有 10这种结构才符合条件
#include<stdio.h>
char s[10005];
int main()
{
int T,n,i,ans;
scanf("%d",&T);
while(T--) {
scanf("%d",&n);
scanf("%s",s);
ans = 0;
int r = 1;
for(i = 0;i<n;i++) {
if(s[i]-'0' == r) {
r = (r+1)%2;
}
else ans ++;
}
if(s[n-1] == '1') ans ++;
printf("%d\n",ans);
}
return 0;
}
#include<stdio.h>
char s[10005];
int main()
{
int T,n,i,ans;
scanf("%d",&T);
while(T--) {
scanf("%d",&n);
scanf("%s",s);
ans = 0;
int r = 1;
for(i = 0;i<n;i++) {
if(s[i]-'0' == r) {
r = (r+1)%2;
}
else ans ++;
}
if(s[n-1] == '1') ans ++;
printf("%d\n",ans);
}
return 0;
}
更多追问追答
追问
并没有这么简单
开始我也是这么想的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询