UVa - 1746 解題紀錄
題目: UVa - 1746 - String Theory
題目說明
給一些整數表示括號的個數,求最大的 k 值。
k-quotation 的定義為:
- 若 k = 1,表示字串頭尾各有一個
'號,而中間沒有任何'號。 - 若 k >= 2,表示字串頭尾各有 k 個
'號,而中間是 k-1-quotation。
如 ''All 'work' and no 'play''',最外層的 ' 號為 2 個,而中間的字串為 1 個,則 k = 2。
解釋的不是很好,可能看題目原文會比較好理解。
For k > 1, a k-quotation is a string that begins with k quote characters, ends with another k quote characters and contains a nested string in-between. The nested string is a non-empty sequence of (k − 1)-quotations, which may be preceded, separated, and/or succeeded by any number of non-quote characters. For example, ‘’All ‘work’ and no ‘play’’’ is a 2-quotation.
Input: 每組測資第一個整數 N,表示有 N 個整數,依序為 a1, a2, ..., aN,表示字串的開頭為 a1 個 ' 號,後面接著一些正整數個非 ' 號的字元,接著 a2 個 ' 號,後面接著一些正整數個非 ' 號的字元,…,直到最後為 aN 個 ' 號結尾。
需要注意的是,若 N = 1,表示 a1 就是 aN,應該是只有 ' 號的意思,或是前面可能有一些非 ' 號的字元,後面接 ' 號,不太確定,題目看不是很懂。
Output: 求最大的 k 值為何,若找不到則輸出 "no quotation",注意 k >= 1。
解題思路
暴力法,找出可能的 k 值,並減去 ' 號的個數,模擬將 ' 號分組,當做到最後一層時,判斷剩下的 ' 號是否是偶數個,若為偶數個才可以一一配對,若不是則不符合。
需要注意的是:
k的最大值為a1及aN兩者的較小者,因為字串頭尾都必須有k個'號。- 若
k = 1,則最後剩下的'號個數需為 0。
參考解法
1 |
|