BUCT OJ 1104 数据结构练习 — 栈的操作

题目地址:
http://coder.buct.edu.cn/oj/Problem.aspx?pid=1104

对C++中stack容器熟悉。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <cstring>
#include <ctype.h>
#include <stdlib.h>
#include <string>
#include <stack>
using namespace std;
 
stack<int> _stack;
char str[1010];
int main()
{
	//freopen("input.txt", "r", stdin);
	while(scanf("%s", str) != EOF)
	{
		while(!_stack.empty())
			_stack.pop();
		int cnt=1;
		int flag=0;
		//printf("strlen=%d\n", strlen(str));
		for(int i=0; i<strlen(str); ++i)
		{
			if(str[i]=='P')
				_stack.push(cnt++);
			else if(str[i]=='Q')
			{
				if(flag)
					printf(" ");
				flag=1;
				if(_stack.empty())
				{
					printf("error");
					break;
				}
				else
				{
					printf("%d", _stack.top());
					_stack.pop();
				}
			}
		}
		printf("\n");
	}
}

发布者

Tanky Woo

Tanky Woo,[个人主页:https://tankywoo.com] / [新博客:https://blog.tankywoo.com]

发表评论

电子邮件地址不会被公开。 必填项已用*标注