zoukankan      html  css  js  c++  java
  • Case of the Zeros and Ones

    题目链接: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 }
  • 相关阅读:
    SpringMvc
    Spring-Aop
    Spring-IOC
    Spring模块划分
    队列
    稀疏数组
    数据结构
    Nginx配置实例
    Nginx常用命令
    视频断点播放:h5+jquery
  • 原文地址:https://www.cnblogs.com/huaszjh/p/4694171.html
Copyright © 2011-2022 走看看