A
就是把一个数无论有多少1,都在开头变为一个1.
(如果这个数是0的话输出0即可)
#include <cstdio>
int one, zero;
char str[MAXN];
int main(int argc, char *argv[])
{
scanf("%*d%s", str);
for(int i = 0; str[i]; i++)
if(str[i] == '1') one++;
else zero++;
if(one) putchar('1');
else putchar('0');
if(one) for(int i = 0; i < zero; i++)
putchar('0');
return 0; }
F
当时以为只要到达墙即
可实际上需要再行动一次才行。
此外因为y=x的特殊性这样问题转化为只要像:由y>=x变成y<x即可。或者y<=x变成y>x均可以计数一次。
#include<stdio.h>
int main()
{
char str[99];
char*s;
s=str;
int k=0,o=0,n,a=0,p=0;
scanf("%d\n %s",n,str);
for(s=str;*s;s++)
{
if(*s=='R') o++;
else if(*s=='U') p++;
if(p>o&&a==-1) k=k+1;
if(p<o&&a==1) k=k+1;
if(p != o)
{
if(p>o) a=1;
else a=-1;
}
}
printf("%d\n", k);
return 0;
}