Problem
Solution
Analysis
Python implementation
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 implementation
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); } }
|
Time complexity
O(N).
Space complexity
O(1).
Links
696. Count Binary Substrings
(中文版) 算法笔记: 力扣#696 计数二进制子串
近期评论