NYOJ--2题括号配对

纠结了一上午,终于在最后做对了。这是第一次完全靠自己用栈写出来的代码,特别有成就感。感觉写的很简洁,完全可以做模版。嘿嘿。虽然说我对栈应用不熟练,但是最起码我会用了,哈哈。感觉纠结这一上午还是很有意义的,不断的寻找错误,不断的修改,对栈的认识也越来越熟练。这个题其实不需要用栈来做,可以用数组来做。但是既然在学栈,就要学以致用,练习一下。

解题思路:对于输入的括号进行判断,如果是“[” 或者是 " (”直接进行储存,如果是')‘或者’]‘,则进行判断一下是否与前一个括号配对。用栈对括号进行储存。最后判断栈是否为空。

原题地址:点击打开链接.

代码如下;

#include<stdio.h> struct stack//定义栈 { char a[10002];//储存括号 int pos; }s; void push(char elem)//进栈 { s.pos++; s.a[s.pos]=elem; } void pop()//类似与出栈 { s.pos--; } int main() { int n; char ch; scanf("%d",&n); getchar();//此处需要注意,吸收回车,倘若大意,后果只有一个,悲剧的WA. while(n--) { s.pos=-1; while(scanf("%c",&ch)&&ch!='\n') { if(ch=='['||ch=='(')//如果是左括号直接进栈 push(ch); else {if(ch==']'&&s.a[s.pos]=='['||s.a[s.pos]=='('&&ch==')')//此处判断与前一个括号是否配对 pop(); else push(ch);//如果不配对,直接输入。其实更简单的是直接结束,输出No. } } if(s.pos==-1)printf("Yes\n"); else printf("No\n"); } } 另外下面是我刚开始写的错误代码,大家可以看一下,有些错误可能是共同的。嘿嘿

错误代码:

#include<stdio.h> struct stack { char a[10002]; int pos; }s; void push(char elem) { s.pos++; s.a[s.pos]=elem; } void pop() { s.pos--;printf("%d\n",s.pos);//此处输出pos,想看看到底什么地方出错 } int main() { int n; char ch; scanf("%d",&n); getchar(); while(n--) { s.pos=-1;//这个是后来测试发现的错误,要把这句话从外面移到里面来。 while(scanf("%c",&ch)&&ch!='\n') { if(ch=='['||ch=='(') push(ch); if(ch==']'&&s.a[s.pos]=='['||s.a[s.pos]=='('&&ch==')') {pop();} if(ch==']'&&s.a[s.pos]!='['||s.a[s.pos]!='('&&ch==')')//这地方是错误的关键,倘若是两个右括号,程序就不执行了。 push(ch); } if(s.pos==-1)printf("Yes\n"); else printf("No\n"); } }

无论如何这个题用栈做了出来,嘿嘿,又向前前进了一小步。

还是那句话:路漫漫其修远兮,吾将上下而求索。


内容概要:本文档详细介绍了Analog Devices公司生产的AD8436真均方根-直流(RMS-to-DC)转换器的技术细节及其应用场景。AD8436由三个独立模块构成:轨到轨FET输入放大器、高动态范围均方根计算内核和精密轨到轨输出放大器。该器件不仅体积小巧、功耗低,而且具有广泛的输入电压范围和快速响应特性。文档涵盖了AD8436的工作原理、配置选项、外部组件选择(如电容)、增益调节、单电源供电、电流互感器配置、接地故障检测、三相电源监测等方面的内容。此外,还特别强调了PCB设计注意事项和误差源分析,旨在帮助工程师更好地理解和应用这款高性能的RMS-DC转换器。 适合人群:从事模拟电路设计的专业工程师和技术人员,尤其是那些需要精确测量交流电信号均方根值的应用开发者。 使用场景及目标:①用于工业自动化、医疗设备、电力监控等领域,实现对交流电压或电流的精准测量;②适用于手持式字万用表及其他便携式仪器仪表,提供高效的单电源解决方案;③在电流互感器配置中,用于检测微小的电流变化,保障电气安全;④应用于三相电力系统监控,优化建立时间和转换精度。 其他说明:为了确保最佳性能,文档推荐使用高质量的电容器件,并给出了详细的PCB布局指导。同时提醒用户关注电介质吸收和泄漏电流等因素对测量准确性的影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值