括号匹配问题

    科技2024-01-10  71

    #include <stdio.h> #include <stdlib.h> #include <string.h> char st1[105]; char st2[105]; int find(int pos); int main(int argc, char *argv[]) { scanf("%s",st1); int n=strlen(st1); memset(st2,' ',sizeof(st2)); for(int i=0;i<n;i++) {if(st1[i]=='(') st2[i]='$'; else if(st1[i]==')') {int flag=find(i-1); if(flag==-1) st2[i]='?'; else st2[flag]=' '; } } st2[n]='\0'; printf("%s\n",st2); system("PAUSE"); return 0; } int find(int pos) {if(pos==-1)return -1; else if (st2[pos]=='$')return pos; else return find(pos-1); }

    运行结果:

    Processed: 0.015, SQL: 8