Dada una string binaria, la tarea es contar los pasos mínimos para eliminar la substring «010» de esta string binaria.
Ejemplos:
Entrada: string_binaria = “0101010”
Salida: 2
Cambiar 0 a 1 en el índice 2 y el índice 4 eliminará la substring 010.
Por lo tanto, el número de pasos necesarios es 2.
Entrada: string_binaria = “010”
Salida: 1
Cambiar cualquiera de 0 a 1 o de 1 a 0 eliminará la substring 010.
Por lo tanto, el número de pasos necesarios es 1.
Acercarse:
- Iterar la string desde el principio hasta el final-2 de la string binaria.
- Si en una string binaria continuamente tres caracteres son ‘0’, ‘1’, ‘0’, entonces cualquier carácter puede cambiarse para que se cuente un paso.
- Aumenta el contador de bucles en 2.
A continuación se muestra la implementación del enfoque anterior:
C++
// CPP program to calculate steps // to remove substring 010 // from a binary string #include <bits/stdc++.h> using namespace std; // Function to find the minimum steps int minSteps(string str) { int count = 0; for (int i = 0; i < str.length() - 2; i++) { if (str[i] == '0') { if (str[i + 1] == '1') { if (str[i + 2] == '0') { // substring "010" found count++; i += 2; } } } } return count; } // Driver code int main() { // Get the binary string string str = "0101010"; // Find the minimum steps cout << minSteps(str); return 0; }
Java
// Java program to calculate steps // to remove substring 010 // from a binary string import java.util.*; class GFG{ // Function to find the minimum steps static int minSteps(String str) { int count = 0; for (int i = 0; i < str.length() - 2; i++) { if (((int)str.charAt(i)) == '0') { if (str.charAt(i + 1) == '1') { if (str.charAt(i + 2) == '0') { // substring "010" found count++; i += 2; } } } } return count; } // Driver code public static void main(String args[]) { // Get the binary string String str = "0101010"; // Find the minimum steps System.out.println(minSteps(str)); } }
Python3
# Python3 program to calculate steps # to remove substring 010 # from a binary string # Function to find the minimum steps def minSteps(str): count = 0 i = 0 while i < len(str) - 2: if str[i] == '0': if(str[i + 1] == '1'): if(str[i + 2] == '0'): # substring "010" found count = count + 1 i = i + 2 i = i + 1 return count # Driver code # Get the binary string str = "0101010" # Find the minimum steps print(minSteps(str)) # This code is contributed # by Shashank_Sharma
C#
// C# program to calculate steps // to remove substring 010 // from a binary string using System; class GFG { // Function to find the minimum steps static int minSteps(string str) { int count = 0; for (int i = 0; i < str.Length - 2; i++) { if (((int)str[i]) == '0') { if (str[i + 1] == '1') { if (str[i + 2] == '0') { // substring "010" found count++; i += 2; } } } } return count; } // Driver code public static void Main() { // Get the binary string string str = "0101010"; // Find the minimum steps Console.Write(minSteps(str)); } } // This code is contributed by ChitraNayal
PHP
<?php // PHP program to calculate steps to remove // substring 010 from a binary string // Function to find the minimum steps function minSteps($str) { $count = 0; for ($i = 0; $i < strlen($str) - 2; $i++) { if ($str[$i] == '0') { if ($str[$i + 1] == '1') { if ($str[$i + 2] == '0') { // substring "010" found $count++; $i += 2; } } } } return $count; } // Driver code // Get the binary string $str = "0101010"; // Find the minimum steps echo(minSteps($str)); // This code is contributed // by Shivi_Aggarwal ?>
Javascript
<script> // js program to calculate steps // to remove substring 010 // from a binary string // Function to find the minimum steps function minSteps(str) { let count = 0; for (let i = 0; i < str.length - 2; i++) { if ((str[i]) == '0') { if (str[i + 1] == '1') { if (str[i + 2] == '0') { // substring "010" found count++; i += 2; } } } } return count; } // Driver code // Get the binary string let str = "0101010"; // Find the minimum steps document.write(minSteps(str)); // This code is contributed by mohit kumar 29. </script>
Producción:
2
Publicación traducida automáticamente
Artículo escrito por SURENDRA_GANGWAR y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA