前往
大廳
主題

LeetCode - 2124. Check if All A's Appears Before All B's 解題心得

Not In My Back Yard | 2022-06-28 12:00:01 | 巴幣 0 | 人氣 111

題目連結:


題目意譯:
給定一字串 s 其只由字元 'a' 和 'b' 所組成,回傳真(True)如果在字串中每個 'a' 都出現於每個 'b' 之前;反之,回傳假(False)。

限制:
1 ≦ s.length ≦ 100
s[i] 只會是 'a' 或是 'b'。



範例測資:
範例 1:
輸入: s = "aaabbb"
輸出: true
解釋:
'a' 位於索引值 0 、 1 和 2,而 'b' 位於索引值 3 、 4 和 5。
因此每個 'a' 都位於每個 'b' 之前,所以我們回傳真。

範例 2:
輸入: s = "abab"
輸出: false
解釋:
字串中有一個 'a'在索引值 2,而有一個 'b' 在索引值 1。
因此,不是每個 'a' 都位於每個 'b' 之前,所以我們回傳假。

範例 3:
輸入: s = "bbb"
輸出: true
解釋:
字串中沒有 'a',因此視為所有的 'a' 皆出現於所有 'b' 之前,所以回傳真。


解題思維:
單純地掃過字串 s,並去找找看 'a' 和 'b' 分別在字串中最後出現的位置。如果字串中沒有 'a' 或是沒有 'b',又或者是 'a' 的最後出現位置小於 'b' 最後出現的位置的話,則回傳真;反之,回傳假。




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

創作回應

更多創作