
问题描述
解法
分析
Python 实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
class : def countBinarySubstrings(self, s): """ :type s: str :rtype: int """ ans, prev, cur = 0, 0, 1 for i in range(1, len(s)): if s[i] != s[i-1]: ans += min(prev, cur) prev, cur = cur, 1 else: cur += 1 return ans + min(prev, cur)
|
Java 实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
class { public int countBinarySubstrings(String s) { int ans = 0; int prev = 0; int cur = 1; for(int i = 1; i < s.length(); i++){ if(s.charAt(i) != s.charAt(i-1)){ ans += (prev < cur ? prev : cur); prev = cur; cur = 1; }else{ cur ++; } } return ans + (prev < cur ? prev : cur); } }
|
时间复杂度
O(N).
空间复杂度
O(1).
链接
696. Count Binary Substrings
696. 计数二进制子串
(English version) Algorithm Notes: Leetcode#696 Count Binary Substrings
近期评论