Verifique si el número se puede mostrar usando un LED de siete segmentos

Dada una string str que representa un número entero y un led entero que es el recuento de LED disponibles. La tarea es verificar si es posible mostrar el número usando los LED dados. 
Tenga en cuenta que se mostrará un dígito tal como se muestra en un LED de 7 segmentos. Si es posible mostrar el número, escriba , de lo contrario, escriba No.
He aquí un ejemplo de pantalla de siete segmentos: 
 

Seven Segment Led

Ejemplos: 
 

Entrada: str = “999”, led = 5 
Salida: NO 
9 necesita 6 LEDs para mostrarse. Por lo tanto, 999 requerirá 18 LED 
Dado que solo hay 5 LED disponibles, no es posible mostrar 999
Entrada: str = «123456789», led = 43 
Salida:
Entrada: str = «123456789», led = 20 
Salida: NO 
 

Enfoque: Calcule previamente el número de segmentos utilizados por los dígitos del 0 al 9 y guárdelo. Ahora, para cada elemento de la string, cuente el número de segmentos que utiliza. Ahora, si cuenta ≤ led , imprima , de lo contrario imprima NO .
 

El número de segmento utilizado por dígito: 
0 -> 6 
1 -> 2 
2 -> 5 
3 -> 5 
4 -> 4 
5 -> 5 
6 -> 6 
7 -> 3 
8 -> 7 
9 -> 6 
 

A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ implementation of above approach
#include <bits/stdc++.h>
using namespace std;
 
// Pre-computed values of segment used by digit 0 to 9.
const int seg[10] = { 6, 2, 5, 5, 4, 5, 6, 3, 7, 6 };
 
// Check if it is possible to display the number
string LedRequired(string s, int led)
{
    int count = 0;
 
    // Finding sum of the segments used by
    // each digit of the number
    for (int i = 0; i < s.length(); ++i) {
        count += seg[int(s[i]) - 48];
    }
 
    if (count <= led)
        return "YES";
    else
        return "NO";
}
 
// Driven Program
int main()
{
    string S = "123456789";
    int led = 20;
 
    // Function call to print required answer
    cout << LedRequired(S, led) << endl;
    return 0;
}

Java

// Java implementation of the above approach
public class GfG{
 
    // Check if it is possible to display the number
    public static String LedRequired(String s, int led)
    {
        // Pre-computed values of segment used by digit 0 to 9.
        int seg[] = { 6, 2, 5, 5, 4, 5, 6, 3, 7, 6 };
 
        int count = 0;
        // Finding sum of the segments used by
        // each digit of the number
        for (int i = 0; i < s.length(); ++i) {
            count += seg[(int)(s.charAt(i)) - 48];
        }
       
        if (count <= led)
            return "YES";
        else
            return "NO";
    }
 
    public static void main(String []args){
         
        String S = "123456789";
        int led = 20;
       
        // Function call to print required answer
        System.out.println(LedRequired(S, led));
    }
}
 
// This code is contributed by Rituraj Jain

Python3

# Python3 implementation of above approach
 
# Pre-computed values of segment
# used by digit 0 to 9.
seg = [ 6, 2, 5, 5, 4,
        5, 6, 3, 7, 6 ]
 
# Check if it is possible to
# display the number
def LedRequired(s, led) :
 
    count = 0
 
    # Finding sum of the segments used
    # by each digit of the number
    for i in range(len(s)) :
        count += seg[ord(s[i]) - 48]
     
    if (count <= led) :
        return "YES"
    else :
        return "NO"
 
# Driver Code
if __name__ == "__main__" :
 
    S = "123456789"
    led = 20
 
    # Function call to print
    # required answer
    print(LedRequired(S, led))
 
# This code is contributed by Ryuga

C#

// C# implementation of the above approach
using System;
class GFG
{
 
// Check if it is possible to display the number
public static String LedRequired(string s, int led)
{
    // Pre-computed values of segment
    // used by digit 0 to 9.
    int[] seg = { 6, 2, 5, 5, 4, 5, 6, 3, 7, 6 };
 
    int count = 0;
     
    // Finding sum of the segments used by
    // each digit of the number
    for (int i = 0; i < s.Length; ++i)
    {
        count += seg[(int)(s[i]) - 48];
    }
 
    if (count <= led)
        return "YES";
    else
        return "NO";
}
 
// Driver Code
public static void Main()
{
     
    string S = "123456789";
    int led = 20;
 
    // Function call to print required answer
    Console.WriteLine(LedRequired(S, led));
}
}
 
// This code is contributed by Akanksha Rai

PHP

<?php
// PHP implementation of above approach
 
// Pre-computed values of segment
// used by digit 0 to 9.
$seg = array(6, 2, 5, 5, 4, 5, 6, 3, 7, 6 );
 
// Check if it is possible to display the number
function LedRequired($s, $led)
{
    $count = 0;
    global $seg;
     
    // Finding sum of the segments used by
    // each digit of the number
    for ($i = 0; $i < strlen($s) ; ++$i)
    {
        $count += $seg[ord($s[$i]) - 48];
    }
 
    if ($count <= $led)
        return "YES";
    else
        return "NO";
}
 
// Driver Code
$S = "123456789";
$led = 20;
 
// Function call to print required answer
echo LedRequired($S, $led);
 
// This code is contributed by ihritik
?>

Javascript

<script>
 
// Javascript implementation of above approach
 
// Pre-computed values of segment used by digit 0 to 9.
const seg = [ 6, 2, 5, 5, 4, 5, 6, 3, 7, 6 ];
 
// Check if it is possible to display the number
function LedRequired(s, led)
{
    var count = 0;
 
    // Finding sum of the segments used by
    // each digit of the number
    for (var i = 0; i < s.length; ++i) {
        count += seg[(s[i]) - 48];
    }
 
    if (count <= led)
        return "YES";
    else
        return "NO";
}
 
    var S = "123456789";
    var led = 20;
 
    // Function call to print required answer
    document.write( LedRequired(S, led) + "<br>");
 
// This code is contributed by SoumikMondal
 
</script>
Producción: 

NO

 

Complejidad de tiempo: O(n), donde n es el tamaño de la string dada
Espacio auxiliar: O(10), ya que se utiliza un espacio adicional de tamaño 10 para crear una array

Publicación traducida automáticamente

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