Eliminar ceros iniciales de una array

Dada una array de N números, la tarea es eliminar todos los ceros iniciales de la array. 
Ejemplos: 
 

Input : arr[] = {0, 0, 0, 1, 2, 3} 
Output : 1 2 3 

Input : arr[] = {0, 0, 0, 1, 0, 2, 3} 
Output : 1 0 2 3 

Enfoque: marque el índice del primer número distinto de cero en la array dada. Almacene los números desde ese índice hasta el final en una array diferente. Imprima la array una vez que todos los números se hayan almacenado en un contenedor diferente. 
A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ program to print the array
// removing the leading zeros
#include <bits/stdc++.h>
using namespace std;
 
// Function to print the array by
// removing leading zeros
void removeZeros(int a[], int n)
{
 
    // index to store the first
    // non-zero number
    int ind = -1;
 
    // traverse in the array and find the first
    // non-zero number
    for (int i = 0; i < n; i++) {
        if (a[i] != 0) {
            ind = i;
            break;
        }
    }
 
    // if no non-zero number is there
    if (ind == -1) {
        cout << "Array has leading zeros only";
        return;
    }
 
    // Create an array to store
    // numbers apart from leading zeros
    int b[n - ind];
 
    // store the numbers removing leading zeros
    for (int i = 0; i < n - ind; i++)
        b[i] = a[ind + i];
 
    // print the array
    for (int i = 0; i < n - ind; i++)
        cout << b[i] << " ";
}
 
// Driver Code
int main()
{
    int a[] = { 0, 0, 0, 1, 2, 0, 3 };
    int n = sizeof(a) / sizeof(a[0]);
    removeZeros(a, n);
    return 0;
}

Java

// Java program to print the array
// removing the leading zeros
import java.util.*;
 
class solution
{
 
// Function to print the array by
// removing leading zeros
static void removeZeros(int[] a, int n)
{
 
    // index to store the first
    // non-zero number
    int ind = -1;
 
    // traverse in the array and find the first
    // non-zero number
    for (int i = 0; i < n; i++) {
        if (a[i] != 0) {
            ind = i;
            break;
        }
    }
 
    // if no non-zero number is there
    if (ind == -1) {
        System.out.print("Array has leading zeros only");
        return;
    }
 
    // Create an array to store
    // numbers apart from leading zeros
    int[] b = new int[n - ind];
 
    // store the numbers removing leading zeros
    for (int i = 0; i < n - ind; i++)
        b[i] = a[ind + i];
 
    // print the array
    for (int i = 0; i < n - ind; i++)
        System.out.print(b[i]+" ");
}
 
// Driver Code
public static void main(String args[])
{
    int[] a = { 0, 0, 0, 1, 2, 0, 3 };
    int n = a.length;
    removeZeros(a, n);
     
}
}

Python3

# Python3 program to print
# the array removing
# the leading zeros
 
# Function to print the
# array by removing
# leading zeros
def removeZeros(a, n):
 
    # index to store the
    # first non-zero number
    ind = -1;
 
    # traverse in the array
    # and find the first
    # non-zero number
    for i in range(n):
        if (a[i] != 0):
            ind = i;
            break;
 
    # if no non-zero
    # number is there
    if (ind == -1):
        print("Array has leading zeros only");
        return;
 
    # Create an array to store
    # numbers apart from leading
    # zeros b[n - ind];
    b=[0]*(n - ind);
 
    # store the numbers
    # removing leading zeros
    for i in range(n - ind):
        b[i] = a[ind + i];
 
    # print the array
    for i in range(n - ind):
        print( b[i] , end=" ");
 
# Driver Code
a = [0, 0, 0, 1, 2, 0, 3];
n = len(a);
removeZeros(a, n);
 
# This code is contributed by mits

C#

// C# program to print the array
// removing the leading zeros
using System;
 
class solution
{
 
// Function to print the array by
// removing leading zeros
static void removeZeros(int[] a, int n)
{
 
    // index to store the first
    // non-zero number
    int ind = -1;
 
    // traverse in the array and find the first
    // non-zero number
    for (int i = 0; i < n; i++)
    {
        if (a[i] != 0)
        {
            ind = i;
            break;
        }
    }
 
    // if no non-zero number is there
    if (ind == -1)
    {
        Console.Write("Array has leading zeros only");
        return;
    }
 
    // Create an array to store
    // numbers apart from leading zeros
    int[] b = new int[n - ind];
 
    // store the numbers removing leading zeros
    for (int i = 0; i < n - ind; i++)
        b[i] = a[ind + i];
 
    // print the array
    for (int i = 0; i < n - ind; i++)
        Console.Write(b[i]+" ");
}
 
// Driver Code
public static void Main(String []args)
{
    int[] a = { 0, 0, 0, 1, 2, 0, 3 };
    int n = a.Length;
    removeZeros(a, n);
}
}
 
// This code contributed by Rajput-Ji

PHP

<?php
// PHP program to print
// the array removing
// the leading zeros
 
// Function to print the
// array by removing
// leading zeros
function removeZeros($a, $n)
{
 
    // index to store the
    // first non-zero number
    $ind = -1;
 
    // traverse in the array
    // and find the first
    // non-zero number
    for ($i = 0; $i < $n; $i++)
    {
        if ($a[$i] != 0)
        {
            $ind = $i;
            break;
        }
    }
 
    // if no non-zero
    // number is there
    if ($ind == -1)
    {
        echo "Array has leading " .
                      "zeros only";
        return;
    }
 
    // Create an array to store
    // numbers apart from leading
    // zeros b[n - ind];
 
    // store the numbers
    // removing leading zeros
    for ($i = 0; $i < $n - $ind; $i++)
        $b[$i] = $a[$ind + $i];
 
    // print the array
    for ($i = 0; $i < $n - $ind; $i++)
        echo $b[$i] , " ";
}
 
// Driver Code
$a = array(0, 0, 0, 1, 2, 0, 3);
$n = sizeof($a);
removeZeros($a, $n);
 
// This code is contributed by ajit
?>

Javascript

<script>
 
// Javascript program to print the array
// removing the leading zeros
 
    // Function to print the array by
    // removing leading zeros
    function removeZeros(a , n) {
 
        // index to store the first
        // non-zero number
        var ind = -1;
 
        // traverse in the array and
        // find the first
        // non-zero number
        for (i = 0; i < n; i++) {
            if (a[i] != 0) {
                ind = i;
                break;
            }
        }
 
        // if no non-zero number is there
        if (ind == -1) {
            document.write("Array has leading zeros only");
            return;
        }
 
        // Create an array to store
        // numbers apart from leading zeros
        var b = Array(n - ind).fill(0);
 
        // store the numbers removing leading zeros
        for (i = 0; i < n - ind; i++)
            b[i] = a[ind + i];
 
        // print the array
        for (i = 0; i < n - ind; i++)
            document.write(b[i] + " ");
    }
 
    // Driver Code
     
        var a = [ 0, 0, 0, 1, 2, 0, 3 ];
        var n = a.length;
        removeZeros(a, n);
 
 
// This code is contributed by todaysgaurav
 
</script>
Producción: 

1 2 0 3

 

Publicación traducida automáticamente

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