学习总结
通过又一周的题库练习,熟悉了数组,栈,队列以及一些基础算法的实际运用,真的将学到的知识运用到解决复杂问题上时还是有些无从下手,所以先分析问题,明确题目要求,搞清楚算法流程,优先级以及时间顺序也是很重要的。解决问题时还需要考虑多方面问题的完善,现在还是有考虑不完善的情况导致得到的功能不全。
蓝桥杯去注释:
方法:用数组模拟栈,从访问栈顶的两个字符入手,找到各种编程注释符单行注释开头"//"、多行注释开头"/*"、多行注释结尾"*/"、以及单行注释结尾"\n";注释开始之后需要在各个分支里记录:加上注释符号,注释掉的字符数;注释结束时,改变栈顶(数组当前的下标减去注释的字符数),将注释的内容放到栈里实现注释出栈。另外栈常用一维数组或链表来实现,用数组实现的队列叫作 顺序栈 ,用链表实现的队列叫作 链式栈 ,这里使用的是顺序栈。
从注释状态转入非注释状态的阶段,不仅要更改状态标识,还要注意注释了多少字符需要出栈,恢复必要的字符到栈顶,不影响程序运行,并为下次转入注释状态做准备。(之前就没有考虑到)
代码:
#include<stdio.h>
char s[1000000];
int main(){
int i,x,m,n;
char c;
n=m=x=i=0;
while((c=getchar())!=EOF){
s[i++]&