Given a string S representing a Morse Code, the task is to check is the code is valid or not. A Morse code is valid if that meets all the below requirements:
- Any message must begin with a dot. [ ‘.’ ]
- Any message must end with a dash. [ ‘-‘ ]
- Every dot must have a corresponding dash after it to close it.
Examples:
Input: S = “.–“
Output: ValidInput: S = “.”
Output: InvalidInput: S = “-“
Output: Invalid
Approach: This is a simple implementation based problem where the first, last and each pair of characters need to be checked for the given conditions. Follow the given steps to solve the problem:
- If the first or last characters are not dot and dash respectively then the string is invalid.
- Traverse the message from 0 to N-1:
- If the character at index i is a dot but at index i+1 is not a dash (-), then the code is invalid.
- If the loop ends, means the message has met all the requirements. So the code is valid.
Below is the implementation for the above approach:
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 notbool 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 codeint 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 notdef 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 codecode = ".--"# Function Callif (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
Time Complexity: O(N)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

… [Trackback]
[…] Read More here on that Topic: geeksforgeeks.org/check-if-given-morse-code-is-valid/ […]
… [Trackback]
[…] Read More on to that Topic: geeksforgeeks.org/check-if-given-morse-code-is-valid/ […]
… [Trackback]
[…] Find More Info here on that Topic: geeksforgeeks.org/check-if-given-morse-code-is-valid/ […]