切換
舊版
前往
大廳
主題

ZeroJudge - e302: PI. Inherit Previous Exam(繼承考古題) 解題心得

Not In My Back Yard | 2019-07-10 22:13:01 | 巴幣 0 | 人氣 77

題目連結:


題目大意:
給定一正整數 T (T ≦ 10),代表有 T 組測試資料,每組佔一列輸入。

每列給定一個由「Y」、「N」組成的字串 S (|S| ≦ 1.2 × 10 ^ 6),代表考古題的供需關係。每個字元代表不同屆的一位學生(越左邊代表越早期的屆數)。

「Y」代表這個學生會產生考古題給接下來屆數的學生;「N」代表這個學生會消耗掉(意旨用過了後面不能再用)一個前面的前輩們所傳下來的考古題,且會消耗離自己屆數最近的考古題。

試問,最後是否可以消耗完考古題且每位需要考古題的學生都可以得到一題考古題。如果是的話,輸出「YES」;反之為「NO」。



範例輸入:
4
YNYYNYNN
YYNNYYNN
YNYNYNYY
YNYNYNN


範例輸出:
YES
YES
NO
NO


解題思維:
令一個變數 x = 0 ,並用一個迴圈從字串的開頭到尾端掃過一次,碰到「Y」就將 x 加 1 ;碰到「N」則 x 減 1 。途中如果 x < 0 ,代表有學生需要考古題但是前面已經沒有剩下的了,即輸出「NO」。

當迴圈結束以後,如果 x > 0,則代表考古題用不完,也是輸出「NO」。

如果皆沒有上述情況,才輸出「YES」。

此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作