#include#include<string.h>using namespace std;#define N 50typedef struct StackNode{ char data; struct StackNode *next;}StackNode,*LinkStack;void InitStack(LinkStack &s){ s=NULL;}void Push(LinkStack &s, char x){ StackNode *p; p=new StackNode; p->data=x; s=p;}void Pop(LinkStack &s,char x)//出栈 { if(s!=NULL) { StackNode *p; x=s->data; p=s; s=s->next; delete p; }}void Print(int flag,LinkStack s){ if(flag == 0) { cout<<1<<endl; } else if(flag ==1||s!=NULL) { cout<<0<<endl; }}int main(){ char n[100]; while(cin>>n) { LinkStack s; InitStack(s); int flag =0; int x= strlen(n); for(int i=0;i<x-1;i++) { if(n[i]=='I') { Push(s,'I');//进栈 不考虑为空的情况 进栈后出栈 } else if(n[i]=='O'&&s!=NULL) { Pop(s,'O');//出栈 } else { flag = 1; break; } } Print(flag,s); } return 0;}
PTA上运行结果与预期结果一致 但是提交答案错误
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- CSDN专家-深度学习进阶 2021-10-19 11:00关注
#include <bits/stdc++.h> using namespace std; int main() { int i,len; char s[111]; while(cin>>s) { int count=0; len=strlen(s); for(i=0;i<len;i++) { if(s[i]=='I') count++; else count--; if(count<0) break; } if(count==0) cout<<1<<endl; else cout<<0<<endl; } return 0; }
解决 无用评论 打赏 举报
悬赏问题
- ¥15 gojs 点击按钮node的position位置进行改变,再次点击回到原来的位置
- ¥15 计算决策面并仿真附上结果
- ¥20 halcon 图像拼接
- ¥15 webstorm上开发的vue3+vite5+typeScript打包时报错
- ¥15 vue使用gojs,需求在link中的虚线上添加方向箭头
- ¥15 CSS通配符清除内外边距为什么可以覆盖默认样式?
- ¥15 SPSS分类模型实训题步骤
- ¥100 求ASMedia ASM1184e & ASM1187e 芯片datasheet/规格书
- ¥15 求解决扩散模型代码问题
- ¥15 工创大赛太阳能电动车项目零基础要学什么