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álidaEntrada: S = “.”
Salida: no válidoEntrada: 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>
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