Pasos mínimos para eliminar la substring 010 de una string binaria

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:
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:
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: 
 

  1. Iterar la string desde el principio hasta el final-2 de la string binaria.
  2. Si en una string binaria continuamente tres caracteres son ‘0’, ‘1’, ‘0’, entonces cualquier carácter puede cambiarse para que se cuente un paso.
  3. 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *