zoukankan      html  css  js  c++  java
  • 中南大学2018年ACM暑期集训前期训练题集(入门题) Q: Simple Line Editor

    数据有毒,一个一个读字符是错,整个字符串读入,一次就A了。

    总之,数据总是没有错的,还是对c++了解地不够深刻,还有,在比赛中,一定要有勇气重构代码

    错误代码:

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    using namespace std;
    int main()
    {
        int T,t;
        scanf("%d",&T);
        char a[1024];
        getchar();
        while(T--){
            t=0;a[0]=0;
            char c;
            while(scanf("%c",&c)!=EOF){
                if(c==10){printf("%s
    ",a);break;}
                if(c=='#'){t=max(0,--t);}
                else if(c=='@'){t=0;a[t]=0;}
                else {
                    a[t]=c;a[++t]=0;
                }
            }
        }
    }
    

      AC代码:

    #include<cstdio>
    #include<algorithm>
    #include<iostream>
    #include<cstring>
    using namespace std;
    int main()
    {
        char a[1024];
        char ans[1024];
        int T;
        cin>>T;
        while(T--){
            cin>>a;
            int n=strlen(a);int t=0;
            for(int i=0;i<n;i++){
                if(a[i]=='#'){t=max(0,--t);}
                else if(a[i]=='@'){t=0;}
                else {
                    ans[t++]=a[i];
                }
            }
            ans[t]=0;
            cout<<ans<<endl;
        }
    }
    

      

  • 相关阅读:
    SQL——UPDATE(改)
    SQL——INSERT INTO(增)
    SQL——SELECT(查)
    Python——raise引发异常
    Python——异常处理
    Python——多态、检查类型
    Python——继承
    Python——封装
    popitem()方法
    pop(D)方法
  • 原文地址:https://www.cnblogs.com/ZGQblogs/p/9118682.html
Copyright © 2011-2022 走看看