• POJ1068 Parencodings【用一个int变量作为栈】


    Problem: 1068   User: qq1203456195
    Memory: 164K   Time: 0MS
    Language: C   Result: Accepted

    开始没读明白题的意思【鄙人英文太烂】,百度了题意,刚接触算法时间不长,没啥好想法,就想先根据q序列把()序列还原,然后再推w序列。

    用了一个中午的时间把q序列还原成()了,然后就是推w序列。

    既然是运算符匹配,肯定是栈了。又不想弄一个栈出来,怎么办呢?突然想到用一个变量就可以了,因为序列中只有(和非(两种情况,只要两类字符的数目抵消就是匹配完了。

    #include <stdio.h>
    #include <string.h>
    int main()
    {
        int n,i,k,m,d,q,p,r,tk;
        char c[41];
        scanf("%d",&n);//n个case
        while (n--)
        {
            //构造()序列
            scanf("%d",&k);//q序列中k个元素
    
            memset(c,'(',sizeof(c));
            d=0;//(的数量
            q=0;//栈
            tk=k;//temp_k
            scanf("%d",&m);//q中的元素
            tk--;//读取一个就记录一个        
            for (i=0;i<2*k;i++)
            {
                if(d==m && c[i]=='(')//匹配
                {//确定Wi
                    q=r=1;
                    p=i-1;
                    while(q&&p>=0)
                    {
                        if (c[p]=='(')    
                            q--;//出栈
                        else
                        {
                            q++;//入栈
                            r++;//)的数量
                        }
                        p--;                    
                    }
                    c[i]=r+48;
                    if(tk--)//读一个q中的元素
                        scanf("%d",&m);
                }
                if(c[i]=='(')
                    d++;//统计(的数量                    
            }
            for (i=0;i<2*k-1;i++)
            {
                if(c[i]!='(')
                    printf("%d ",c[i]-48);
            }
            printf("%d\n",c[i]-48);
        }
        return 1;
    }
    字节跳动内推

    找我内推: 字节跳动各种岗位
    作者: ZH奶酪(张贺)
    邮箱: cheesezh@qq.com
    出处: http://www.cnblogs.com/CheeseZH/
    * 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    实验二 结对编程
    实验一 GIT代码版本管理
    实验五-单元测试
    代码审查
    结对编程(第二阶段)
    实验一GIT代码版本管理
    2020综合实践 第6次实践作业 08组
    第五次系统综合实践
    第四次系统综合实践
    第三次系统综合实践
  • 原文地址:https://www.cnblogs.com/CheeseZH/p/2446236.html
Copyright © 2020-2023  润新知