Alice has a binary string. She thinks a binary string is beautiful if and only if it doesn’t contain the substring “010”.
In one step, Alice can change a 0 to a 1 or vice versa. Count and print the minimum number of steps needed to make Alice see the string as beautiful.
For example, if Alice’s string is b=010 she can change any one element and have a beautiful string.
Function Description
Complete the beautifulBinaryString function in the editor below. It should return an integer representing the minimum moves required.
beautifulBinaryString has the following parameter(s):
- b: a string of binary digits
Input Format
The first line contains an integer , the length of binary string.
The second line contains a single binary string .
Constraints
- 1<=n<=100
- .b[i] belongs to {0,1}
Output Format
Print the minimum number of steps needed to make the string beautiful.
Sample Input 0
7 0101010
Sample Output 0
2
Beautiful Binary String HackerRank Solution in C
#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); int i=0,count=0; while(B[i]){ if(B[i]=='0'&&B[i+1]=='1'&&B[i+2]=='0'){ B[i+2]='1'; count++; } i++; } printf("%d",count); return 0; }
Beautiful Binary String HackerRank Solution in C++
#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; char B[105]; int main(){ int n; int ans=0; scanf("%d", &n); scanf("%s", B); for(int i=2; B[i]; i++){ if(B[i-2] == '0' && B[i-1] == '1' && B[i] == '0') B[i] = '1', ans++; } printf("%d", ans); return 0; }
Beautiful Binary String HackerRank Solution in Java
import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); String B = in.next(); int i = 0; int total = 0; while (i < B.length()-2) { if (B.substring(i,i+3).equals("010")) { total++; i+=3; } else { i++; } } System.out.println(total); } }
Beautiful Binary String HackerRank Solution in Python
#!/bin/python import sys n = int(raw_input().strip()) B = raw_input().strip() if '010' not in B: print 0 else: print B.count('010')
Beautiful Binary String HackerRank Solution in C#
using System; using System.Collections.Generic; using System.Globalization; using System.IO; using System.Linq; using System.Text; using System.Threading; public class Solver { public void Solve() { int n = ReadInt(); var a = ReadToken().ToCharArray(); int ans = 0; for (int i = 1; i + 1 < n; i++) if (a[i - 1] == '0' && a[i] == '1' && a[i + 1] == '0') { a[i + 1] = '1'; ans++; } Write(ans); } #region Main protected static TextReader reader; protected static TextWriter writer; static void Main() { #if DEBUG reader = new StreamReader("..\\..\\input.txt"); writer = Console.Out; //writer = new StreamWriter("..\\..\\output.txt"); #else reader = new StreamReader(Console.OpenStandardInput()); writer = new StreamWriter(Console.OpenStandardOutput()); //reader = new StreamReader("game.in"); //writer = new StreamWriter("game.out"); #endif try { new Solver().Solve(); } catch (Exception ex) { #if DEBUG Console.WriteLine(ex); #else Console.WriteLine(ex); throw; #endif } reader.Close(); writer.Close(); } #endregion #region Read / Write private static Queue<string> currentLineTokens = new Queue<string>(); private static string[] ReadAndSplitLine() { return reader.ReadLine().Split(new[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries); } public static string ReadToken() { while (currentLineTokens.Count == 0) currentLineTokens = new Queue<string>(ReadAndSplitLine()); return currentLineTokens.Dequeue(); } public static int ReadInt() { return int.Parse(ReadToken()); } public static long ReadLong() { return long.Parse(ReadToken()); } public static double ReadDouble() { return double.Parse(ReadToken(), CultureInfo.InvariantCulture); } public static int[] ReadIntArray() { return ReadAndSplitLine().Select(x => int.Parse(x)).ToArray(); } public static long[] ReadLongArray() { return ReadAndSplitLine().Select(x => long.Parse(x)).ToArray(); } public static double[] ReadDoubleArray() { return ReadAndSplitLine().Select(s => double.Parse(s, CultureInfo.InvariantCulture)).ToArray(); } public static int[][] ReadIntMatrix(int numberOfRows) { int[][] matrix = new int[numberOfRows][]; for (int i = 0; i < numberOfRows; i++) matrix[i] = ReadIntArray(); return matrix; } public static int[][] ReadAndTransposeIntMatrix(int numberOfRows) { int[][] matrix = ReadIntMatrix(numberOfRows); int[][] ret = new int[matrix[0].Length][]; for (int i = 0; i < ret.Length; i++) { ret[i] = new int[numberOfRows]; for (int j = 0; j < numberOfRows; j++) ret[i][j] = matrix[j][i]; } return ret; } public static string[] ReadLines(int quantity) { string[] lines = new string[quantity]; for (int i = 0; i < quantity; i++) lines[i] = reader.ReadLine().Trim(); return lines; } public static void WriteArray<T>(IEnumerable<T> array) { writer.WriteLine(string.Join(" ", array.Select(aa => aa.ToString()).ToArray())); } public static void Write<T>(params T[] array) { WriteArray(array); } public static void WriteLines<T>(IEnumerable<T> array) { foreach (var a in array) writer.WriteLine(a); } #endregion }
Attempt Beautiful Binary String Hackerrank Challenge
Link – https://www.hackerrank.com/challenges/beautiful-binary-string/
Next HackerRank Challenge Solution
Link – https://exploringbits.com/closest-numbers-hackerrank-solution/
Aayush Kumar Gupta is the founder and creator of ExploringBits, a website dedicated to providing useful content for people passionate about Engineering and Technology. Aayush has completed his Bachelor of Technology (Computer Science & Engineering) from 2018-2022. From July 2022, Aayush has been working as a full-time Devops Engineer.