码迷,mamicode.com
首页 > 其他好文 > 详细

Case of the Zeros and Ones

时间:2015-08-01 17:04:11      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:

题目链接:http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=187940
题意:

       单组案例,输入由0和1组成的字符串,相邻的字符如果一方为0,另一方为1,则移除这两个字符,问将字符串满足条件的字符完全移除后字符串长度。

案例:

         Sample

         Input

     4

1100
        Output
     0
        Input
     5

01010
       Output
     1
        Input
     8

11101111
        Output
     6

分析:

       刚看到这题时,我首先想到的是栈,所以用栈的方式做了一次,不过输出总是出错,可能编译部分出错,但自己没找到。后来发现这题其实很简单,不用观察相邻的字符是否符合条件,只需判断0和1的个数分别为多少,再拿大的一方减去小的一方即可。具体原因,稍稍转变思想就可以想到了。

源代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5 const int maxn=200000;
 6 char a[maxn];
 7 int main()
 8 {
 9     int n,i,j=0,k=0;
10     cin>>n;
11     scanf("%s",a);
12     for(i=0;i<n;i++)
13     {    
14         if(a[i]==0)//找出字符串中0的个数
15             j=j+1;
16         else if(a[i]==1) //找出字符串中1的个数
17             k=k+1;
18     }
19     if(k>j)//输出最终结果
20        cout<<k-j<<endl;
21     else cout<<j-k<<endl;
22     return 0;
23 }

 

Case of the Zeros and Ones

标签:

原文地址:http://www.cnblogs.com/huaszjh/p/4694171.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!