poj1068Parencodings

原创 2016年05月30日 18:00:22

http://poj.org/problem?id=1068

1.利用P-sequence里的数值,还原出括号串S。

2.从左往右遍历括号串S,遇到右括号停止,设置计数器。指针回退,遇到左括号不管有没有匹配过,都要

计数器+1,直到遇到左括号没有匹配过停止。新匹配的左括号处置新的特殊字符,标记为访问过,为下一次

指针回退做准备。

<span style="font-size:18px;">#include <stdio.h>
char S[25];
int num[25];
int main()
{
    int t,n,i,j,k,count;
    scanf("%d",&t);
    while(t--)//测试样例的个数
    {
        scanf("%d",&n);      
        num[0]=0;        
        k=0;
        for(i=1;i<=n;i++)//P-sequence
            scanf("%d",&num[i]);
        for(i=1;i<=n;i++)//make S
        {
            for(j=0;j<(num[i]-num[i-1]);j++)
                S[k++]='(';
            S[k++]=')';
        }
        for(i=0;i<k;i++)//遍历括号串S
        {
            if(S[i]==')')
            {
                count=0;//计数器置0
                for(j=i-1;j>=0;j--)//从右括号往左扫描
                {
                    if(S[j]!=')')
                        count++;
                    if(S[j]=='(')
                    {
                        S[j]='~';
                        break;
                    }
                }
                printf("%d ",count);
            }
        }
        printf("\n");
    }
    return 0;
}


</span>


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

POJ 1068 Parencodings 模拟 栈操作

Parencodings Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 17398   Accepted: 10...

POJ1068 Parencodings(模拟)

Parencodings Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 20763  ...

POJ1068——Parencodings

POJ1068——模拟 /* *********************************************************** 算法原理: S是一串匹配正确的...
  • zykimmy
  • zykimmy
  • 2015年12月09日 12:40
  • 290

poj1068 Parencodings

Let S = s1 s2...s2n be a well-formed string of parentheses. S can be encoded in two different ways: ...

poj 1068 Parencodings

没什么算法,直接模拟。 /* * Author: stormdpzh * Time: 2012/5/11 20:07:00 * POJ: 1068 Parencodings */ #incl...

Poj_1068 Parencodings

S     (((( )( )() ) ) ) P-sequence     4 5 6666,表示第i个右括号的左边有几个左括号。 W-sequence    1 1 1456,表示第i个右括号和以...

POJ 1068:Parencodings(模拟)

Let S = s1 s2...s2n be a well-formed string of parentheses. S can be encoded in two different ways: ...

poj 1068 Parencodings(模拟)

题目:http://poj.org/problem?id=1068 Parencodings Time Limit: 1000MS   Memory Limit: 10000K Tot...

POJ1068 Parencodings(模拟)

题目链接:http://poj.org/problem?id=1068 解题思路:

POJ1068--Parencodings--栈

Description Let S = s1 s2...s2n be a well-formed string of parentheses. S can be encoded in two dif...
  • a305657
  • a305657
  • 2013年02月07日 17:38
  • 259
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:poj1068Parencodings
举报原因:
原因补充:

(最多只允许输入30个字)