文章

34

粉丝

109

获赞

7

访问

19.9k

头像
括号匹配问题 题解:c语言 解决,帮我看看就对了66percent
P1296 北京大学机试题
发布于2024年3月6日 16:18
阅读数 468

#include <stdio.h>
#include <string.h>

int main()
{
    char s[105];
    while (scanf("%s", s) != EOF)
    { // 用栈存 没有匹配的左括号的坐标
        int top = -1, i = 0, top2 = -1;
        char stack[105];
        int stack1[105] = {0};
        char cnt[105] = {'!'};
        while (s[i] != '\0')
        {
            while (s[i] == '(')
            {
                stack[++top] = s[i++];
                stack1[++top2] = i - 1;
            }

            if (s[i] == ')' && top == -1)
            {
                cnt[i] = '?';
                i++;
            }
            else if (s[i] == ')' && stack[top] == '(')
            {
                top--;
                top2--;
                i++;
            }
            else if (s[i] != '(' || s[i] != ')')
            {
                i++;
            }
        }

        while (top != -1)
        {
            cnt[stack1[top2--]] = '$';
            top--;
        }

   ...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发