题解 | 括号配对问题

括号配对问题

https://www.nowcoder.com/practice/57260c08eaa44feababd05b328b897d7

#include <stdio.h>
#include<string.h>
int main() 
{
    char s[10001];
    scanf("%s",s);
    int flag=1;
    int count_1=0;//'('
    int count_2=0;//')'
    int count_3=0;//'['
    int count_4=0;//']'
    int len=strlen(s);
    int a[10001]={0},b[10001]={0},c[10001]={0},d[10001]={0};
    for(int i=0;i<len;i++)
    {
        if(s[i]=='(') a[count_1]=i,count_1++;
        if(s[i]==')') b[count_2]=i,count_2++;
        if(s[i]=='[') c[count_3]=i,count_3++;
        if(s[i]==']') d[count_4]=i,count_4++;
    }
    if(count_1!=count_2||count_3!=count_4)
    {
        flag=0;
    }
    if(count_1==count_2||count_3==count_4)
    {
        for(int i=0;i<len;i++)
        {
            if(b[i]<a[i]||d[i]<c[i]||(c[i]>a[i]&&b[i]>c[i]&&b[i]<d[i]))
            {
                flag=0;
            }
        }
    }
    if(flag==0) 
    {
        printf("false");
    }
    else 
    {
        printf("true");
    }
    return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务