前往
大廳
主題

LeetCode - 1957. Delete Characters to Make Fancy String 解題心得

Not In My Back Yard | 2022-01-08 00:00:03 | 巴幣 0 | 人氣 154

題目連結:


題目意譯:
一個花俏字串為一字串,其中沒有三個相鄰字元是相同的。

給定一字串 s,從 s 中刪除盡可能地少的字元使其變得花俏。

回傳刪除後的最終字串。可以看到答案將必定唯一。

限制:
1 ≦ s.length ≦ 10 ^ 5
s 只由小寫英文字母組成。



範例測資:
範例 1:
輸入: s = "leeetcode"
輸出: "leetcode"
解釋:
將第一群的 'e' 中移除一個 'e' 得到 "leetcode"。
沒有三個連續字元是相同的,所以回傳 "leetcode"。

範例 2:
輸入: s = "aaabaaaa"
輸出: "aabaa"
解釋:
將第一群的 'a' 中移除一個 'a' 得到 "aabaaaa"。
將第二群的 'a' 中移除兩個 'a' 得到 "aabaa"。
沒有三個連續字元是相同的,所以回傳 "aabaa"。

範例 3:
輸入: s = "aab"
輸出: "aab"
解釋: 沒有三個連續字元是相同的,所以回傳 "aab"。


解題思維:
掃過字串 s 並統計每群相同的字元連續出現幾次(如這題,假設當前字元次數為 c),則最後留下 min(2, c) 個該字元而其他的捨棄掉即可。




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

創作回應

更多創作