Cambios mínimos de caracteres continuos para hacer que todos los caracteres sean iguales en una string

Dada una string que consta solo de 1 y 0. De un tirón podemos cambiar cualquier secuencia continua de esta string. Encuentre este número mínimo de vueltas para que la string consista solo en los mismos caracteres.
Ejemplos: 
 

Input : 00011110001110
Output : 2
We need to convert 1's sequence
so string consist of all 0's.

Input : 010101100011
Output : 4

C++

// CPP program to find min flips in binary
// string to make all characters equal
#include <bits/stdc++.h>
using namespace std;
  
// To find min number of flips in binary string
int findFlips(char str[], int n)
{
    char last = ' '; int res = 0;
  
    for (int i = 0; i < n; i++) {
  
        // If last character is not equal
        // to str[i] increase res
        if (last != str[i])
            res++;
        last = str[i];
    }
  
    // To return min flips
    return res / 2;
}
  
// Driver program to check findFlips()
int main()
{
    char str[] = "00011110001110";
    int n = strlen(str);
  
    cout << findFlips(str, n);
  
    return 0;
}

Java

// Java program to find min flips in binary
// string to make all characters equal
public class minFlips {
  
    // To find min number of flips in binary string
    static int findFlips(String str, int n)
    {
        char last = ' '; int res = 0;
  
        for (int i = 0; i < n; i++) {
  
            // If last character is not equal
            // to str[i] increase res
            if (last != str.charAt(i))
                res++;
            last = str.charAt(i);
        }
  
        // To return min flips
        return res / 2;
    }
  
    // Driver program to check findFlips()
    public static void main(String[] args)
    {
        String str = "00011110001110";
        int n = str.length();
  
        System.out.println(findFlips(str, n));
    }
}

Python 3

# Python 3 program to find min flips in 
# binary string to make all characters equal
  
# To find min number of flips in
# binary string
def findFlips(str, n):
  
    last = ' '
    res = 0
  
    for i in range( n) :
  
        # If last character is not equal
        # to str[i] increase res
        if (last != str[i]):
            res += 1
        last = str[i]
  
    # To return min flips
    return res // 2
  
# Driver Code
if __name__ == "__main__":
      
    str = "00011110001110"
    n = len(str)
  
    print(findFlips(str, n))
  
# This code is contributed by ita_c

C#

// C# program to find min flips in
// binary string to make all
// characters equal
using System;
  
public class GFG {
  
    // To find min number of flips
    // in binary string
    static int findFlips(String str, int n)
    {
        char last = ' '; int res = 0;
  
        for (int i = 0; i < n; i++) {
  
            // If last character is not
            // equal to str[i] increase
            // res
            if (last != str[i])
                res++;
            last = str[i];
        }
  
        // To return min flips
        return res / 2;
    }
  
    // Driver program to check findFlips()
    public static void Main()
    {
        String str = "00011110001110";
        int n = str.Length;
  
        Console.Write(findFlips(str, n));
    }
}
  
// This code is contributed by nitin mittal

PHP

<?php
// PHP program to find min flips in binary
// string to make all characters equal
  
// To find min number of
// flips in binary string
function findFlips($str, $n)
{
    $last = ' ';
    $res = 0;
  
    for ($i = 0; $i < $n; $i++) 
    {
  
        // If last character is not equal
        // to str[i] increase res
        if ($last != $str[$i])
            $res++;
        $last = $str[$i];
    }
  
    // To return min flips
    return intval($res / 2);
}
  
    // Driver Code
    $str = "00011110001110";
    $n = strlen($str);
  
    echo findFlips($str, $n);
      
// This code is contributed by Sam007
?>

Javascript

<script>
  
// JavaScript program to find min flips in binary
// string to make all characters equal
  
  
    // To find min number of flips in binary string
    function findFlips( str , n) {
        var last = ' ';
        var res = 0;
  
        for (i = 0; i < n; i++) {
  
            // If last character is not equal
            // to str[i] increase res
            if (last != str.charAt(i))
                res++;
            last = str.charAt(i);
        }
  
        // To return min flips
        return parseInt(res / 2);
    }
  
    // Driver program to check findFlips()
      
        var str = "00011110001110";
        var n = str.length;
  
        document.write(findFlips(str, n));
  
  
// This code contributed by aashish1995
  
</script>

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *