題目連結:
題目意譯:
給定一二元字串 s ,回傳真(True)如果 s 中最長連續區段的「1」長於最長連續區段的「0」;反之,回傳假(False)。
例如, s = "110100010" 中最長連續區段的「1」長度為 2 ,而最長連續區段的「0」長度為 3 。
注意當 s 中沒有 0 時,最長連續區段的「0」視作為長度 0 。同樣地,當沒有「1」時也是類似如此。
限制:
1 ≦ s.length ≦ 100
s[i] is either '0' or '1'.
範例測資:
範例 1:
輸入: s = "1101"
輸出: true
解釋:
最長連續區段的「1」長度為 2 : "1101"
最長連續區段的「0」長度為 1 : "1101"
「1」的區段較長,所以回傳真。
範例 2:
輸入: s = "111000"
輸出: false
解釋:
最長連續區段的「1」長度為 3 : "111000"
最長連續區段的「0」長度為 3 : "111000"
「1」的區段沒有較長,所以回傳假。
範例 3:
輸入: s = "110100010"
輸出: false
解釋:
最長連續區段的「1」長度為 2 : "110100010"
最長連續區段的「0」長度為 3 : "110100010"
「1」的區段沒有較長,所以回傳假。
解題思維:
就是單純地去統計每個連續「0」或連續「1」各自的長度,如
這題。然後判斷最長的連續「1」有沒有長過最長的連續「0」即可得到所求。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。