文章

25

粉丝

364

获赞

8

访问

220.6k

头像
括号匹配(C)
P1296 北京大学机试题
发布于2021年1月28日 10:33
阅读数 6.8k

思路:用栈存储目前已经被扫描过但是没有适配的括号的下标,扫描完之后栈内剩下的下标指向的括号就是所有未适配的括号

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

int main()
{
    char s[2][101];
    int stack[101];//存放扫描过但未适配的括号的下标
    int top = -1;
    int len;
    while (scanf("%s", s[0]) != EOF)
    {
        top = -1;
        len = strlen(s[0]);

        for (int i = 0; i < len; i++)//初始化
        {
            s[1][i] = ' ';
        }
        s[1][len]='\0';

        for (int i = 0; i < len; i++)
        {
            if (s[0][i] == '(')//直接入栈
            {
                stack[++top] = i;//存放下标
            }
            else if (s[0][i] == ')')
            {
                if (top==-1)
                {
                    stack[++top] = i;
                }                
                else if (s[0][stack[top]]=='(')//与上一个括号适配
                {
                    top--;
                }
                else
                {...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发