Problem
給一個由 ^, _ 構成的字串,請湊出最多的 ^_^ 子字串。
Sample Input
|
|
Sample Output
|
|
Solution
從左掃瞄到右邊,貪心著手容易得到兩種狀態
- $h1$:
^的個數。 - $h2$: 湊成
^???_的個數,可以從 $h1$ 合併_構成。
然而有一些特殊案例 ^_^_^^,需要重新排列,他們之間有巢狀關係 (^_(^_^)^),因此建立狀態 $h3$ 為 ^_^???_,若遇到下一個 ^ 貪心拆解成 (^_(^_^)???)。
|
|