Compruebe si la imagen especular de un número es la misma si se muestra en la pantalla de siete segmentos

Dado un número positivo n . La tarea es verificar si la imagen especular del número es igual al número dado o no si se muestra en Seven Line Segment . Una imagen especular de un número es una duplicación reflejada del número que parece casi idéntica pero está invertida en la dirección perpendicular a la superficie del espejo.
Ejemplos: 
 

Input : n = 101
Output: Yes
Mirror image of 101 is 101 on seven line segment. So, print "Yes".

Input : n = 020
Output : No

Observe cada dígito cuando se muestra en un segmento de siete líneas, solo los dígitos 0, 1, 8 permanecen iguales en su imagen especular. Entonces, para que un número sea igual a su imagen especular, debe contener solo 0, 1, 8 dígitos. Además, observe, para que dos números sean iguales, su dígito de posición correspondiente debe ser el mismo. Por lo tanto, la imagen especular también debe contener el mismo dígito en su posición de dígito correspondiente. Entonces, el número también debería ser un palíndromo.
A continuación se muestra la implementación de este enfoque: 
 

C++

// C++ Program to check if mirror image of a number is
// same if displayed in seven segment display
#include <bits/stdc++.h>
using namespace std;
 
// Return "Yes", if the mirror image of number
// is same as the given number
// Else return "No"
string checkEqual(string S)
{
    // Checking if the number contain only 0, 1, 8.
    for (int i = 0; i < S.size(); i++) {
        if (S[i] != '1' && S[i] != '0' && S[i] != '8') {
            return "No";
        }
    }
 
    int start = 0, end = S.size() - 1;
 
    // Checking if the number is palindrome or not.
    while (start < end) {
 
        // If corresponding index is not equal.
        if (S[start] != S[end]) {
            return "No";
        }
 
        start++;
        end--;
    }
 
    return "Yes";
}
int main()
{
    string S = "101";
 
    cout << checkEqual(S) << endl;
    return 0;
}

Java

// Java Program to check if
// mirror image of a number
// is same if displayed in
// seven segment display
import java.io.*;
 
class GFG
{
     
// Return "Yes", if the
// mirror image of number
// is same as the given
// number Else return "No"
static String checkEqual(String S)
{
    // Checking if the number
    // contain only 0, 1, 8.
    for (int i = 0;
             i < S.length(); i++)
    {
        if (S.charAt(i) != '1' &&
            S.charAt(i) != '0' &&
            S.charAt(i) != '8')
        {
            return "No";
        }
    }
 
    int start = 0,
        end = S.length() - 1;
 
    // Checking if the number
    // is palindrome or not.
    while (start < end)
    {
 
        // If corresponding
        // index is not equal.
        if (S.charAt(start) !=
            S.charAt(end))
        {
            return "No";
        }
 
        start++;
        end--;
    }
 
    return "Yes";
}
 
// Driver Code
public static void main (String[] args)
{
    String S = "101";
 
    System.out.println(checkEqual(S));
}
}
 
// This code is contributed
// by anuj_67.

Python3

# Python3 Program to check if mirror
# image of a number is same if displayed
# in seven segment display
 
# Return "Yes", if the mirror image
# of number is same as the given number
# Else return "No"
def checkEqual(S):
     
    # Checking if the number contain
    # only 0, 1, 8.
    for i in range(len(S)):
        if (S[i] != '1' and S[i] != '0'
                        and S[i] != '8'):
            return "No";
 
    start = 0;
    end = len(S) - 1;
 
    # Checking if the number is
    # palindrome or not.
    while (start < end):
 
        # If corresponding index is not equal.
        if (S[start] != S[end]):
            return "No";
 
        start += 1;
        end -= 1;
 
    return "Yes";
 
# Driver Code
S = "101";
print(checkEqual(S));
     
# This code is contributed by mits

C#

// C# Program to check if mirror image
// of a number is same if displayed in
// seven segment display
using System;
 
class GFG
{
     
// Return "Yes", if the mirror image
// of number is same as the given
// number Else return "No"
static string checkEqual(string S)
{
    // Checking if the number
    // contain only 0, 1, 8.
    for (int i = 0; i < S.Length; i++)
    {
        if (S[i] != '1' &&
            S[i] != '0' &&
            S[i] != '8')
        {
            return "No";
        }
    }
 
    int start = 0, end = S.Length - 1;
 
    // Checking if the number is
    // palindrome or not.
    while (start < end)
    {
 
        // If corresponding index is not equal.
        if (S[start] !=
            S[end])
        {
            return "No";
        }
 
        start++;
        end--;
    }
 
    return "Yes";
}
 
// Driver Code
public static void Main()
{
    string S = "101";
 
    Console.WriteLine(checkEqual(S));
}
}
 
// This code is contributed
// by mits

PHP

<?php
// PHP Program to check if mirror image
// of a number is same if displayed in
// seven segment display
 
// Return "Yes", if the mirror image
// of number is same as the given number
// Else return "No"
function checkEqual($S)
{
    // Checking if the number contain
    // only 0, 1, 8.
    for ($i = 0; $i < strlen($S); $i++)
    {
        if ($S[$i] != '1' && $S[$i] != '0' &&
                             $S[$i] != '8')
        {
            return "No";
        }
    }
 
    $start = 0;
    $end = strlen($S) - 1;
 
    // Checking if the number is
    // palindrome or not.
    while ($start < $end)
    {
 
        // If corresponding index is not equal.
        if ($S[$start] != $S[$end])
        {
            return "No";
        }
 
        $start++;
        $end--;
    }
 
    return "Yes";
}
 
// Driver Code
$S = "101";
echo checkEqual($S);
     
// This code is contributed by ajit
?>

Javascript

<script>
 
// Javascript Program to check if mirror image of a number is
// same if displayed in seven segment display
 
// Return "Yes", if the mirror image of number
// is same as the given number
// Else return "No"
function checkEqual(S)
{
    // Checking if the number contain only 0, 1, 8.
    for (var i = 0; i < S.length; i++) {
        if (S[i] != '1' && S[i] != '0' && S[i] != '8') {
            return "No";
        }
    }
 
    var start = 0, end = S.length - 1;
 
    // Checking if the number is palindrome or not.
    while (start < end) {
 
        // If corresponding index is not equal.
        if (S[start] != S[end]) {
            return "No";
        }
 
        start++;
        end--;
    }
 
    return "Yes";
}
 
var S = "101";
document.write( checkEqual(S));
 
</script>

Producción 
 

Yes

Complejidad de tiempo: O(n), donde n es el tamaño de la string dada
Espacio auxiliar: O(1), ya que no se requiere espacio adicional

Publicación traducida automáticamente

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