# Hackerrank Beautiful Binary String problem solution

In this Hackerrank Beautiful Binary String problem, we have given a string and we need to determine a minimum number of steps needed to make a string beautiful by changing 0 to 1 and 1 to 0.

## Problem solution in Python programming.

#!/bin/python3

import math
import os
import random
import re
import sys

#
# Complete the 'beautifulBinaryString' function below.
#
# The function is expected to return an INTEGER.
# The function accepts STRING b as parameter.
#

def beautifulBinaryString(b):
return(b.count('010'))

if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')

n = int(input().strip())

b = input()

result = beautifulBinaryString(b)

fptr.write(str(result) + '\n')

fptr.close()

## Problem solution in Java Programming.

import java.io.*;
import java.util.*;

public class Solution {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
sc.nextLine();
String input = sc.nextLine();
int i = 0;
while (i < n - 2){
if (input.substring(i, i + 3).equals("010")){
i += 3;
continue;
}
i++;
}
}
}

### Problem solution in C++ programming.

#include <map>
#include <set>
#include <list>
#include <cmath>
#include <ctime>
#include <deque>
#include <queue>
#include <stack>
#include <string>
#include <bitset>
#include <cstdio>
#include <limits>
#include <vector>
#include <climits>
#include <cstring>
#include <cstdlib>
#include <fstream>
#include <numeric>
#include <sstream>
#include <iostream>
#include <algorithm>
#include <unordered_map>

using namespace std;

int main(){
int n;
cin >> n;
string B;
cin >> B;

int cnt = 0;
for (int i = 0; i < B.size(); ++i) {
if (B.substr(i, 3) == "010") {
++cnt;
i+=2;
}
}
cout << cnt << endl;
return 0;
}

### Problem solution in C programming.

#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <limits.h>
#include <stdbool.h>

int main(){
int n;
scanf("%d",&n);
char* B = (char *)malloc(10240 * sizeof(char));
scanf("%s",B);
printf("%d\n", countSubstring(B, "010"));
return 0;
}

int countSubstring(const char *str, const char *sub)
{
int length = strlen(sub);
if (length == 0) return 0;
int count = 0;
for (str = strstr(str, sub); str; str = strstr(str + length, sub))
++count;
return count;
}

### Problem solution in JavaScript programming.

process.stdin.resume();
process.stdin.setEncoding('ascii');

var input_stdin = "";
var input_stdin_array = "";
var input_currentline = 0;

process.stdin.on('data', function (data) {
input_stdin += data;
});

process.stdin.on('end', function () {
input_stdin_array = input_stdin.split("\n");
main();
});

return input_stdin_array[input_currentline++];
}

/////////////// ignore above this line ////////////////////

function main() {

let index = B.indexOf('010');
let i = 0;
while(index > -1){
i++;
B = B.split('')
B[index+2] = '1'
B = B.join('')
index = B.indexOf('010');
}
console.log(i);

}