字串 LeetCode696 計數二進位制子串

2021-10-09 01:47:39 字數 1007 閱讀 3570

給定乙個字串 s,計算具有相同數量0和1的非空(連續)子字串的數量,

並且這些子字串中的所有0和所有1都是組合在一起的。

重複出現的子串要計算它們出現的次數。

輸入: "00110011"

輸出: 6

解釋: 有6個子串具有相同數量的連續1和0:「0011」,「01」,「1100」,「10」,「0011」 和 「01」。

請注意,一些重複出現的子串要計算它們出現的次數。

另外,「00110011」不是有效的子串,因為所有的0(和1)沒有組合在一起。

輸入: "10101"

輸出: 4

解釋: 有4個子串:「10」,「01」,「10」,「01」,它們具有相同數量的連續1和0。

計數,找技巧思路題!!!

class solution(object):

def countbinarysubstrings(self, s):

""":type s: str

:rtype: int

"""cur = 1 # 本組0或1的計數

pre = 0 # 記錄前一組0或1的計數

res = 0

n = len(s)

for i in range(1, n):

if s[i] == s[i-1]:

cur += 1

else:

res += min(cur, pre)

pre = cur # 更新pre = 當前組計數

cur = 1 # 當前組cur 從新開始計數

return res + min(cur, pre)

str = "00110011"

s = solution()

print(s.countbinarysubstrings(str))

leetcode 696 計數二進位制子串

給定乙個字串s,計算具有相同數量0和1的非空 連續 子字串的數量,並且這些子字串中的所有0和所有1都是組合在一起的。重複出現的子串要計算它們出現的次數。示例 1 輸入 00110011 輸出 6 解釋 有6個子串具有相同數量的連續1和0 0011 01 1100 10 0011 和 01 請注意,一...

LeetCode 696 計數二進位制子串

給定乙個字串s,計算具有相同數量0和1的非空 連續 子字串的數量,並且這些子字串中的所有0和所有1都是組合在一起的。重複出現的子串也要計算它們出現的次數。輸入 00110011 輸出 6 解釋 有6個子串具有相同數量的連續1和0 0011 01 1100 10 0011 和 01 一次遍歷即可,關鍵...

leetcode 696 計數二進位制子串

696.計數二進位制子串 給定乙個字串 s,計算具有相同數量0和1的非空 連續 子字串的數量,並且這些子字串中的所有0和所有1都是組合在一起的。重複出現的子串要計算它們出現的次數。示例 1 輸入 00110011 輸出 6 解釋 有6個子串具有相同數量的連續1和0 0011 01 1100 10 0...