a565. 2.p&q的邂逅
a565. 2.p&q的邂逅
| 解題思路 : 將p放進stack中,若有q,則對數+1並將stack中最上層的p刪掉,即可計算對數
| 程式碼 :
/*
a565. 2.p&q的邂逅
https://zerojudge.tw/ShowProblem?problemid=a565
skyblue
AC (0.3s, 9.8MB)
*/
#include <bits/stdc++.h>
using namespace std;
char line[100000005];
int main(){
int n;
scanf("%d", &n);
while(n--){
int pairs = 0;
stack<char> stk;
scanf("%s", line);
int len = strlen(line);
for(int i = 0; i<len; i++){
switch(line[i]){
case '.':
break;
case 'p':
stk.push('p');
break;
//看到一個p,就把它放進stack中
case 'q':
if(!stk.empty()){
pairs++;
stk.pop();
}
//如果stack不是空的,代表裡面有待配對的p,對數增加一件,把最上面的p刪掉
break;
}
}
printf("%d\n", pairs);
}
return 0;
}
/*
範例輸入 #1
2
..p..p.p...q.q.
.p...qq..p.pq.p..q.qpp..qpq
範例輸出 #1
2
6
*/
留言
張貼留言