前往
大廳
主題

LeetCode - 1544. Make The String Great 解題心得

Not In My Back Yard | 2023-10-03 12:00:13 | 巴幣 0 | 人氣 138

題目連結:


題目意譯:
給定一字串 s,其由大小寫英文字母組成。

一個「好」字串為一字串,而當中不存在著兩個相鄰字元 s[i] 和 s[i + 1],其中:
0 ≦ i ≦ s.length - 2
s[i] 為一個小寫字母而 s[i + 1] 為同一個字母的大寫型態;或是兩者情況反過來。

為了使字串變好,你可以選擇讓字串不好的兩個相鄰字元並移除它們。你可以持續做這件事情直到字串變好為止。

將該字串變好之後回傳。在給定的限制條件下保證答案唯一。

注意到一個空字串也是好字串。

限制:
1 ≦ s.length ≦ 100
s 只由大小寫英文字母組成。



範例測資:
範例 1:
輸入: s = "leEeetcode"
輸出: "leetcode"
解釋: 在第一步中,你可以要嘛選擇 i = 1 要嘛選擇 i = 2,兩者都會將 "leEeetcode" 變成 "leetcode"。

範例 2:
輸入: s = "abBAcC"
輸出: ""
解釋: 我們有很多可能的情況,而每一個都會得到相同的答案。例如:
"abBAcC" --> "aAcC" --> "cC" --> ""
"abBAcC" --> "abBA" --> "aA" --> ""

範例 3:
輸入: s = "s"
輸出: "s"


解題思維:
因為題目保證答案唯一,再加上字串的長度最長也只有 100 個字元。因此我們可以直接一直掃過該字串,找找看有沒有不符合條件的兩個相鄰字母並刪除即可。當沒有這樣子的相鄰字元時,即代表著該字串變好了,因此此時直接回傳該字串剩下的內容即可。




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

創作回應

相關創作

更多創作