llllmz

导航

1978:扩号匹配问题C

#include<stdio.h>
int main(){
    char s[101];
    while(scanf("%s",s)!=EOF){
        printf("%s\n",s);
        char tem[101];
        int a[101]={0};
        int top=0;
        int i=0;
        for(;s[i]!='\0';i++){
            if(s[i]=='('){
                tem[top++]=s[i];
                a[i]=-1;
            }else if(s[i]==')'){
                if(top==0||tem[top-1]!='('){
                    a[i]=-2;
                }else{
                    a[i]=0;
                    int j=i;
                    for( ;j>=0;j--){
                        if(a[j]==-1) break;
                    }
                    a[j]=0;
                    top--;
                }
            }else{
                a[i]=0;
            }
        }
        for(int j =0;j<i;j++){
            if(a[j]==0){
                printf(" ");
            }else if(a[j]==-1){
                printf("$");
            }else{
                printf("?");
            }
        }
        printf("\n");
    }
    return 0;
}

结果:

 

posted on 2024-01-18 19:29  神奇的萝卜丝  阅读(26)  评论(0)    收藏  举报