标签:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1022
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 22954 Accepted Submission(s): 8652
1 #include <cstdio> 2 #include <cstring> 3 #include <stack> 4 #include <iostream> 5 #include <algorithm> 6 using namespace std; 7 8 int main () 9 { 10 int n,i,j,k; 11 char in[20],out[20]; 12 int flag[50]; 13 stack <char> s; 14 while (scanf ("%d%s%s",&n,in,out)==3) 15 { 16 while (!s.empty())//清空栈, 17 s.pop(); 18 memset(flag, 0, sizeof(flag)); 19 j = k = 0; 20 for (i=0; i<n; i++) 21 { 22 s.push(in[i]);//入栈 23 flag[k++] = 1;//标记 24 while (!s.empty() && s.top() == out[j])//如果栈顶元素是要出栈的元素,出栈 25 { 26 flag[k++] = 0; 27 s.pop(); 28 j++; 29 } 30 } 31 if (j == n) 32 { 33 printf ("Yes.\n"); 34 for (i=0; i<k; i++) 35 { 36 if (flag[i]) 37 printf ("in\n"); 38 else 39 printf ("out\n"); 40 } 41 } 42 else 43 printf ("No.\n"); 44 printf ("FINISH\n"); 45 } 46 return 0; 47 }
标签:
原文地址:http://www.cnblogs.com/dxd-success/p/4245857.html