害怕提交次数过多,然后不再跑代码,影响成绩,所以又重新创建了两个号来测这道题。

结果全都正确,但就是一直”WA",然后Debug了近5个小时才把"WA"改成“AC",没想到是错在了这里!!!:

char s[1000];
fgets(s,500,stdin);
char *ptrs=s;while(*ptrs!='\n'){
//No!
while(*ptrs!='\0'){
//Yes!

有2种解法:

1.顺序栈

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
typedef struct SeqList{char s[1000];int top;
}SeqList;void PushStack(SeqList *pseq,char c){pseq->top++;pseq->s[pseq->top]=c;
}void PopStack(SeqList *pseq){pseq->top--;
}int main(){char s[1000];fgets(s,500,stdin);char *ptrs=s;SeqList *seq;seq->top=-1;while(*ptrs!='\0'){switch(*ptrs){case '(':case '[':case '{':PushStack(seq,*ptrs);break;case ')':case ']':case '}':if(seq->top==-1){printf("no");return 0;}else if(((*ptrs)==')')&&(seq->s[seq->top]=='(')){PopStack(seq);break;}else if((*ptrs==']')&&(seq->s[seq->top]=='[')){PopStack(seq);break;}else if((*ptrs=='}')&&(seq->s[seq->top]=='{')){PopStack(seq);break;}else{printf("no");return 0;}}ptrs++;}if(seq->top=-1){printf("yes");}else{printf("no");}return 0;
}

2.链表栈

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
typedef struct NODE{char c;struct NODE* next;
}NODE;
typedef struct LinkStack{struct NODE* top;
}LinkStack;void PushStack(LinkStack* plstack,char c1){NODE* p=(NODE*)malloc(sizeof(NODE));p->c=c1;p->next=plstack->top;plstack->top=p;
}void PopStack(LinkStack* plstack){NODE* temp=plstack->top;plstack->top=(plstack->top)->next;free(temp);
}int main(){char s[1000];fgets(s,500,stdin);char *ptrs=s;LinkStack* plstack=(LinkStack*)malloc(sizeof(LinkStack));plstack->top=NULL;while(*ptrs!='\0'){switch(*ptrs){case '(':case '[':case '{':PushStack(plstack,*ptrs);break;case ')':case ']':case '}':if(plstack->top==NULL){printf("no");return 0;}else if(((*ptrs)==')')&&((plstack->top)->c=='(')){PopStack(plstack);break;}else if(((*ptrs)==']')&&((plstack->top)->c=='[')){PopStack(plstack);break;}else if(((*ptrs)=='}')&&((plstack->top)->c=='{')){PopStack(plstack);break;}else{printf("no");return 0;}}ptrs++;}if(plstack->top==NULL){printf("yes");}else{printf("no");}return 0;
}

视频解析:https://live.csdn.net/v/191617

西工大NOJ数据结构理论——007.表达式括号与匹配(严3.19)相关推荐

  1. 西工大NOJ数据结构理论——013.以十字链表为存储结构实现矩阵相加(严5.27)

      我第一下拿到这个题目,第一反应就是先定义好数据结构,然后构建好十字链表基础操作的函数,也就是"创插遍历"这些操作.下面是我的定义和函数操作. typedef int ElemT ...

  2. 西工大NOJ数据结构理论——021.逆波兰表达式(严7.38)

    这道题我参考的是(80条消息) 『西工大-数据结构-NOJ』 021-逆波兰表达式(耿7.38) 『西北工业大学』__LanXiu的博客-CSDN博客 (准确来说是快期末考试了,所以各科老师都在疯 狂 ...

  3. 西工大NOJ数据结构理论——017.输出以二叉树表示的算术表达式(严6.51)

    (17条消息) 『西工大-数据结构-NOJ』 017-输出以二叉树表示的算术表达式(耿6.51) 『西北工业大学』__LanXiu的博客-CSDN博客 上面是我参考的一位学长的博客. 先序建立二叉树, ...

  4. 西工大NOJ数据结构理论——014.求广义表深度(严5.30)

    第一下拿到这道题,我的脑袋轰一下就大了.如果说用"括号匹配"来做的话,这其实很简单.但是如果要用广义表来做的话,难度哗哗哗的就涨上来了.为什么呢?首先,要把读入的字符串存到广义表里 ...

  5. 西工大NOJ数据结构理论——015.建立二叉树的二叉链表存储结构(严6.70)

    我相信,大家都已经了解了这道题的背景,以及明白了我们需要做的事情. 对于这道题的背景,相信大家都熟悉,所以就不说了. 关于我们需要做的事情,大家也已经有了自己的思路.所以,我只在下面简短的写一写我的思 ...

  6. 西工大NOJ数据结构理论——018.建立二叉树的二叉链表(严6.65)

    刚点开这道题以后,我的反应是: 1.打开老师发的PPT:DS-Chap6,然后翻到第70页: 2.跟着图解,自己照着画了三四遍(其实是抄了三四遍: 3.然后自己出了一个比较简单的题: 先序:ABDCE ...

  7. 西工大NOJ数据结构理论——010.k阶斐波那契数列(严3.32)

    k阶斐波那契序列定义:第k和k+1项为1,前k - 1项为0,从k项之后每一项都是前k项的和 k=2时,斐波那契序列为:0,1,1,2,3,5,8,13... k=3时,斐波那契序列为:0,0,1,1 ...

  8. 西工大NOJ数据结构理论——001.顺序表的插入运算(耿2.4)

    #include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct NODE {int n ...

  9. 西工大NOJ数据结构理论——016.计算二叉树叶子结点数目(耿6.14)

    一.初级思路 拿到题之后的好习惯--先在纸上写思路: 1.构建二叉树: char* BinTreeBuilding(PBinTreeNode ptr_node,char *ptr_str){//创建二 ...

最新文章

  1. 江苏谋定特色小镇-农业大健康·万祥军:旅游理念经营产业
  2. VS 2010 开发 ActiveX 自动升级篇
  3. python随机数种子通俗_随机数种子random.seed()理解
  4. 服务器如何安装应用程序,第四节 服务器端应用程序安装
  5. windows 平台下,运用 Python 进行简单的文件操作需要用到的函数
  6. opencv读取usb摄像头_2020 款 11寸 iPad Pro 深度摄像头 RGBD 视频流可视化
  7. 各大牛逼讲师的经典Jquery精品视频教程,大放送啦!!!(包括手机移动端JqueryWeb开发)!!!...
  8. 网络流之最小点权覆盖和最大点权独立集学习
  9. node.js的C++入门
  10. kubernetes视频教程笔记 (30)-安全-鉴权Authorization
  11. roc-auc_AUC-ROC技术的局限性
  12. 苹果id登陆不上去怎么回事_创建苹果id是出现请联络iTunes支持人员完成交易是怎么回事?...
  13. gh-ost学习笔记 试验代码学习
  14. 青少年计算机编程赛,青少年编程竞赛汇总
  15. LightOJ 1274 Beating the Dataset
  16. 我们为什么要使用室内定位技术?
  17. 封装CopyFileEx函数,实现文件复制中的暂停,控速,获取进度
  18. Mosaicking to Distill Knowledge Distillation from Out-of-Domain Data
  19. 云服务器的购买及搭建
  20. 贼好用的六款 Linux 远程连接工具介绍

热门文章

  1. Verilog 三种计数器写法
  2. 【黏住用户的不是小红书,而是它背后的那些人】
  3. 桑基图可视化图表使用技巧全解析
  4. 文件包含漏洞—allow_url_fopen和allow_url_include详解
  5. [转载]命令行也强大之下载迅雷资源的方法
  6. ANSYS二次开发:Python解析ansys fluent结果文件
  7. Windows下,Sublime text 在GoSublime中支持goimports
  8. 基于PHP的客户分销商管理系统
  9. python里面如何实现元组和列表的转换_python列表和元组相互转换
  10. 提升研发质量的三个办法