696. Count Binary Substrings
/**
* Problem: LeetCode 696 - Count Binary Substrings
* Difficulty: Easy
* Language: Java
* Author: CodeByTushu
*/
class Solution {
public int countBinarySubstrings(String s) {
int prevRun = 0;
int currRun = 1;
int count = 0;
for (int i = 1; i < s.length(); i++) {
if (s.charAt(i) == s.charAt(i - 1)) {
currRun++;
} else {
count += Math.min(prevRun, currRun);
prevRun = currRun;
currRun = 1;
}
}
count += Math.min(prevRun, currRun);
return count;
}
}
"""
Problem: LeetCode 696 - Count Binary Substrings
Difficulty: Easy
Language: Python
Author: CodeByTushu
"""
class Solution:
def countBinarySubstrings(self, s: str) -> int:
prev_run = 0
curr_run = 1
count = 0
for i in range(1, len(s)):
if s[i] == s[i - 1]:
curr_run += 1
else:
count += min(prev_run, curr_run)
prev_run = curr_run
curr_run = 1
count += min(prev_run, curr_run)
return count
/**
* Problem: LeetCode 696 - Count Binary Substrings
* Difficulty: Easy
* Language: C++
* Author: CodeByTushu
*/
#include <string>
#include <algorithm>
using namespace std;
class Solution {
public:
int countBinarySubstrings(string s) {
int prevRun = 0;
int currRun = 1;
int count = 0;
for (int i = 1; i < (int)s.length(); i++) {
if (s[i] == s[i - 1]) {
currRun++;
} else {
count += min(prevRun, currRun);
prevRun = currRun;
currRun = 1;
}
}
count += min(prevRun, currRun);
return count;
}
};
/**
* Problem: LeetCode 696 - Count Binary Substrings
* Difficulty: Easy
* Language: JavaScript
* Author: CodeByTushu
*/
/**
* @param {string} s
* @return {number}
*/
var countBinarySubstrings = function(s) {
let prevRun = 0;
let currRun = 1;
let count = 0;
for (let i = 1; i < s.length; i++) {
if (s[i] === s[i - 1]) {
currRun++;
} else {
count += Math.min(prevRun, currRun);
prevRun = currRun;
currRun = 1;
}
}
count += Math.min(prevRun, currRun);
return count;
};