S5來襲4/11旗艦上市女大生禁不起誘惑!按了..正妹的東京自助旅行反服貿流血 法官要警交...
2012-12-26 22:12:35 人氣(224) | 回應(0) | 推薦(0) | 收藏(0) 上一篇 | 下一篇

[UVA][stack] 12582 - Wedding of Sultan

0
收藏
0
推薦

題目意思:給定一個圖的走訪方式(dfs),問每個節點的 degree。

解法:
既然原本 dfs 是用 stack 去寫,那麼還原也是 stack 去模擬。
第一次遇到的字母 = push()
第二次遇到的字母 = pop(), 同時 top 是相連的符號。



#include <stdio.h>
#include <string.h>

int main() {
    int t, cases = 0, i;
    scanf("%d", &t);
    while(t--) {
        char s[105];
        int ans[128] = {}, stk[128];
        int stkIdx = -1;
        scanf("%s", s);
        for(i = 0; s[i]; i++) {
            if(stkIdx < 0 || stk[stkIdx] != s[i]) {
                stk[++stkIdx] = s[i];
                ans[s[i]]++;
            } else {
                stkIdx--;
                if(stkIdx >= 0)
                    ans[stk[stkIdx]]++;
            }
        }
        ans[s[0]]--;
        printf("Case %d\n", ++cases);
        for(i = 'A'; i <= 'Z'; i++)
            if(ans[i])
                printf("%c = %d\n", i, ans[i]);
    }
    return 0;
}

12582Wedding of Sultanstack
台長:Morris
人氣(224) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 不分類 | 個人分類: UVA |
此分類下一篇:[UVA][殺人遊戲][zkw線段樹] 1394 - And Then There Was One
此分類上一篇:[UVA] 12583 - Memory Overflow

我要回應
是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入以下數字 (ex:123)

(有*為必填)
詳全文