Morse code is a method of transmitting text information as a series of on-off tones, lights, or clicks that can be directly understood by a skilled listener or observer without special equipment. It is named for Samuel F. B. Morse, an inventor of the telegraph.
The algorithm is very simple. Every character in the English language is substituted by a series of ‘dots’ and ‘dashes’ or sometimes just singular ‘dot’ or ‘dash’ and vice versa.
Every text string is converted into the series of dots and dashes. For this every character is converted into its Morse code and appended in encoded message. Here we have copied space as it is. We have considered both numbers and alphabets.

Examples:
Input : geeksforgeeks
Output : --...-.-.....-.---.-.--...-.-...
Input : program
Output : .--..-.-----..-..---
Implementation:
C++
#include <iostream>
using namespace std;
string morseEncode( char x)
{
switch (x) {
case 'a' :
return ".-" ;
case 'b' :
return "-..." ;
case 'c' :
return "-.-." ;
case 'd' :
return "-.." ;
case 'e' :
return "." ;
case 'f' :
return "..-." ;
case 'g' :
return "--." ;
case 'h' :
return "...." ;
case 'i' :
return ".." ;
case 'j' :
return ".---" ;
case 'k' :
return "-.-" ;
case 'l' :
return ".-.." ;
case 'm' :
return "--" ;
case 'n' :
return "-." ;
case 'o' :
return "---" ;
case 'p' :
return ".--." ;
case 'q' :
return "--.-" ;
case 'r' :
return ".-." ;
case 's' :
return "..." ;
case 't' :
return "-" ;
case 'u' :
return "..-" ;
case 'v' :
return "...-" ;
case 'w' :
return ".--" ;
case 'x' :
return "-..-" ;
case 'y' :
return "-.--" ;
case 'z' :
return "--.." ;
case '1' :
return ".----" ;
case '2' :
return "..---" ;
case '3' :
return "...--" ;
case '4' :
return "....-" ;
case '5' :
return "....." ;
case '6' :
return "-...." ;
case '7' :
return "--..." ;
case '8' :
return "---.." ;
case '9' :
return "----." ;
case '0' :
return "-----" ;
default :
cerr << "Found invalid character: " << x << ' '
<< std::endl;
exit (0);
}
}
void morseCode(string s)
{
for ( int i = 0; s[i]; i++)
cout << morseEncode(s[i]);
cout << endl;
}
int main()
{
string s = "geeksforgeeks" ;
morseCode(s);
return 0;
}
|
Java
class GFG
{
static String morseEncode( char x)
{
switch (x)
{
case 'a' :
return ".-" ;
case 'b' :
return "-..." ;
case 'c' :
return "-.-." ;
case 'd' :
return "-.." ;
case 'e' :
return "." ;
case 'f' :
return "..-." ;
case 'g' :
return "--." ;
case 'h' :
return "...." ;
case 'i' :
return ".." ;
case 'j' :
return ".---" ;
case 'k' :
return "-.-" ;
case 'l' :
return ".-.." ;
case 'm' :
return "--" ;
case 'n' :
return "-." ;
case 'o' :
return "---" ;
case 'p' :
return ".--." ;
case 'q' :
return "--.-" ;
case 'r' :
return ".-." ;
case 's' :
return "..." ;
case 't' :
return "-" ;
case 'u' :
return "..-" ;
case 'v' :
return "...-" ;
case 'w' :
return ".--" ;
case 'x' :
return "-..-" ;
case 'y' :
return "-.--" ;
case 'z' :
return "--.." ;
case '1' :
return ".----" ;
case '2' :
return "..---" ;
case '3' :
return "...--" ;
case '4' :
return "....-" ;
case '5' :
return "....." ;
case '6' :
return "-...." ;
case '7' :
return "--..." ;
case '8' :
return "---.." ;
case '9' :
return "----." ;
case '0' :
return "-----" ;
}
return "" ;
}
static void morseCode(String s)
{
for ( int i = 0 ;i<s.length(); i++)
System.out.print(morseEncode(s.charAt(i)));
System.out.println();
}
public static void main (String[] args)
{
String s = "geeksforgeeks" ;
morseCode(s);
}
}
|
Python 3
def morseEncode(x):
if x is 'a' :
return ".-"
elif x is 'b' :
return "-..."
elif x is 'c' :
return "-.-."
elif x is 'd' :
return "-.."
elif x is 'e' :
return "."
elif x is 'f' :
return "..-."
elif x is 'g' :
return "--."
elif x is 'h' :
return "...."
elif x is 'i' :
return ".."
elif x is 'j' :
return ".---"
elif x is 'k' :
return "-.-"
elif x is 'l' :
return ".-.."
elif x is 'm' :
return "--"
elif x is 'n' :
return "-."
elif x is 'o' :
return "---"
elif x is 'p' :
return ".--."
elif x is 'q' :
return "--.-"
elif x is 'r' :
return ".-."
elif x is 's' :
return "..."
elif x is 't' :
return "-"
elif x is 'u' :
return "..-"
elif x is 'v' :
return "...-"
elif x is 'w' :
return ".--"
elif x is 'x' :
return "-..-"
elif x is 'y' :
return "-.--"
elif x is 'z' :
return "--.."
elif x is '1' :
return ".----" ;
elif x is '2' :
return "..---" ;
elif x is '3' :
return "...--" ;
elif x is '4' :
return "....-" ;
elif x is '5' :
return "....." ;
elif x is '6' :
return "-...." ;
elif x is '7' :
return "--..." ;
elif x is '8' :
return "---.." ;
elif x is '9' :
return "----." ;
elif x is '0' :
return "-----" ;
def morseCode(s):
for character in s:
print (morseEncode(character), end = "")
if __name__ = = "__main__" :
s = "geeksforgeeks"
morseCode(s)
|
C#
using System;
class GFG
{
static string morseEncode( char x)
{
switch (x)
{
case 'a' :
return ".-" ;
case 'b' :
return "-..." ;
case 'c' :
return "-.-." ;
case 'd' :
return "-.." ;
case 'e' :
return "." ;
case 'f' :
return "..-." ;
case 'g' :
return "--." ;
case 'h' :
return "...." ;
case 'i' :
return ".." ;
case 'j' :
return ".---" ;
case 'k' :
return "-.-" ;
case 'l' :
return ".-.." ;
case 'm' :
return "--" ;
case 'n' :
return "-." ;
case 'o' :
return "---" ;
case 'p' :
return ".--." ;
case 'q' :
return "--.-" ;
case 'r' :
return ".-." ;
case 's' :
return "..." ;
case 't' :
return "-" ;
case 'u' :
return "..-" ;
case 'v' :
return "...-" ;
case 'w' :
return ".--" ;
case 'x' :
return "-..-" ;
case 'y' :
return "-.--" ;
case 'z' :
return "--.." ;
case '1' :
return ".----" ;
case '2' :
return "..---" ;
case '3' :
return "...--" ;
case '4' :
return "....-" ;
case '5' :
return "....." ;
case '6' :
return "-...." ;
case '7' :
return "--..." ;
case '8' :
return "---.." ;
case '9' :
return "----." ;
case '0' :
return "-----" ;
}
return "" ;
}
static void morseCode( string s)
{
for ( int i = 0;i<s.Length; i++)
Console.Write(morseEncode(s[i]));
Console.WriteLine();
}
public static void Main ()
{
string s = "geeksforgeeks" ;
morseCode(s);
}
}
|
PHP
<?php
function morseEncode( $x )
{
switch ( $x ) {
case 'a' :
return ".-" ;
case 'b' :
return "-..." ;
case 'c' :
return "-.-." ;
case 'd' :
return "-.." ;
case 'e' :
return "." ;
case 'f' :
return "..-." ;
case 'g' :
return "--." ;
case 'h' :
return "...." ;
case 'i' :
return ".." ;
case 'j' :
return ".---" ;
case 'k' :
return "-.-" ;
case 'l' :
return ".-.." ;
case 'm' :
return "--" ;
case 'n' :
return "-." ;
case 'o' :
return "---" ;
case 'p' :
return ".--." ;
case 'q' :
return "--.-" ;
case 'r' :
return ".-." ;
case 's' :
return "..." ;
case 't' :
return "-" ;
case 'u' :
return "..-" ;
case 'v' :
return "...-" ;
case 'w' :
return ".--" ;
case 'x' :
return "-..-" ;
case 'y' :
return "-.--" ;
case '1' :
return ".----" ;
case '2' :
return "..---" ;
case '3' :
return "...--" ;
case '4' :
return "....-" ;
case '5' :
return "....." ;
case '6' :
return "-...." ;
case '7' :
return "--..." ;
case '8' :
return "---.." ;
case '9' :
return "----." ;
case '0' :
return "-----" ;
case 'z' :
return "--.." ;
}
}
function morseCode( $s )
{
for ( $i = 0; $i < strlen ( $s ); $i ++)
echo morseEncode( $s [ $i ]);
echo "\n" ;
}
$s = "geeksforgeeks" ;
morseCode( $s );
?>
|
Javascript
function morseEncode(x) {
switch (x) {
case 'a' :
return ".-" ;
case 'b' :
return "-..." ;
case 'c' :
return "-.-." ;
case 'd' :
return "-.." ;
case 'e' :
return "." ;
case 'f' :
return "..-." ;
case 'g' :
return "--." ;
case 'h' :
return "...." ;
case 'i' :
return ".." ;
case 'j' :
return ".---" ;
case 'k' :
return "-.-" ;
case 'l' :
return ".-.." ;
case 'm' :
return "--" ;
case 'n' :
return "-." ;
case 'o' :
return "---" ;
case 'p' :
return ".--." ;
case 'q' :
return "--.-" ;
case 'r' :
return ".-." ;
case 's' :
return "..." ;
case 't' :
return "-" ;
case 'u' :
return "..-" ;
case 'v' :
return "...-" ;
case 'w' :
return ".--" ;
case 'x' :
return "-..-" ;
case 'y' :
return "-.--" ;
case 'z' :
return "--.." ;
case '1' :
return ".----" ;
case '2' :
return "..---" ;
case '3' :
return "...--" ;
case '4' :
return "....-" ;
case '5' :
return "....." ;
case '6' :
return "-...." ;
case '7' :
return "--..." ;
case '8' :
return "---.." ;
case '9' :
return "----." ;
case '0' :
return "-----" ;
default :
console.error( "Found invalid character: " + x);
process.exit(0);
}
}
function morseCode(s) {
let result = "" ;
for (let i = 0; i < s.length; i++) {
result += morseEncode(s[i]);
}
console.log(result);
}
let s = "geeksforgeeks" ;
morseCode(s);
|
Output--...-.-.....-.---.-.--...-.-...
Time Complexity: O(n)
Auxiliary Space: O(1)