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 */
留言
張貼留言