Comprobar si el código Morse dado es válido

Dada una string S que representa un código Morse , la tarea es verificar si el código es válido o no. Un código Morse es válido si cumple con todos los requisitos a continuación:

  • Cualquier mensaje debe comenzar con un punto. [ ‘.’ ]
  • Cualquier mensaje debe terminar con un guión. [ ‘-‘ ]
  • Cada punto debe tener un guión correspondiente después de él para cerrarlo.

Ejemplos:

Entrada: S = “.–“
Salida: Válida

Entrada: S = “.”
Salida: no válido

Entrada: S = “-“
Salida: Inválido

 

Enfoque: Este es un problema simple basado en la implementación donde el primero, el último y cada par de caracteres deben verificarse para las condiciones dadas. Siga los pasos dados para resolver el problema:

  • Si el primer o el último carácter no son puntos y rayas respectivamente, la string no es válida.
  • Atraviesa el mensaje de 0 a N-1 :
    • Si el carácter en el índice i es un punto pero en el índice i+1 no es un guión (-) , entonces el código no es válido.
  • Si el ciclo termina, significa que el mensaje ha cumplido con todos los requisitos. Entonces el código es válido.

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

C++14

// C++ code to implement the approach
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to find if
// the Morse code is valid or not
bool isValidMorse(string& code)
{
    int n = code.length();
 
    if (code[0] != '.' || code[n - 1] != '-')
        return 0;
 
    for (int i = 0; i < n - 1; i++) {
        if (code[i] == '.' && code[i + 1] != '-')
            return 0;
    }
 
    return 1;
}
 
// Driver's code
int main()
{
    string code = ".--";
 
    // Function Call
    if (isValidMorse(code))
        cout << "Valid";
    else
        cout << "Invalid";
    return 0;
}

Java

/*package whatever //do not write package name here */
import java.io.*;
 
class GFG {
  // Java code to implement the approach
 
  // Function to find if
  // the Morse code is valid or not
  static boolean isValidMorse(String code)
  {
    int n = code.length();
 
    if (code.charAt(0) != '.' || code.charAt(n - 1) != '-')
      return false;
 
    for (int i = 0; i < n - 1; i++) {
      if (code.charAt(i) == '.' && code.charAt(i + 1) != '-')
        return false;
    }
 
    return true;
  }
 
 
  /* Driver program to test above function*/
  public static void main(String args[])
  {
    String code = ".--";
 
    // Function Call
    if (isValidMorse(code))
      System.out.println("Valid");
    else
      System.out.println("Invalid");
  }
}
 
// This code is contributed by shinjanpatra.

Python3

# Python3 code to implement the approach
 
# Function to find if
# the Morse code is valid or not
def isValidMorse(code):
 
    n = len(code)
 
    if (code[0] != '.' or code[n - 1] != '-'):
        return 0
 
    for i in range(n-1):
        if (code[i] == '.' and code[i + 1] != '-'):
            return 0
 
    return 1
 
# Driver's code
 
code = ".--"
 
# Function Call
if (isValidMorse(code)):
    print("Valid")
else:
    print("Invalid")
 
# This code is contributed by shinjanpatra

C#

/*package whatever //do not write package name here */
using System;
 
public class GFG
{
 
  // C# code to implement the approach
 
  // Function to find if
  // the Morse code is valid or not
  static bool isValidMorse(String code)
  {
    int n = code.Length;
 
    if (code[0] != '.' || code[(n - 1)] != '-')
      return false;
 
    for (int i = 0; i < n - 1; i++) {
      if (code[i] == '.' && code[(i + 1)] != '-')
        return false;
    }
 
    return true;
  }
 
 
  /* Driver program to test above function*/
  public static void Main(String []args)
  {
    String code = ".--";
 
    // Function Call
    if (isValidMorse(code))
      Console.WriteLine("Valid");
    else
      Console.WriteLine("Invalid");
  }
}
 
// This code contributed by shikhasingrajput

Javascript

<script>
       // JavaScript code for the above approach
 
 
       // Function to find if
       // the Morse code is valid or not
       function isValidMorse(code) {
           let n = code.length;
 
           if (code[0] != '.' || code[n - 1] != '-')
               return 0;
 
           for (let i = 0; i < n - 1; i++) {
               if (code[i] == '.' && code[i + 1] != '-')
                   return 0;
           }
 
           return 1;
       }
 
       // Driver's code
 
       let code = ".--";
 
       // Function Call
       if (isValidMorse(code))
           document.write("Valid");
       else
           document.write("Invalid");
 
   // This code is contributed by Potta Lokesh
   </script>
Producción

Valid

Complejidad temporal: O(N)
Espacio auxiliar: O(1)

Publicación traducida automáticamente

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