我8岁的侄女昨天在学校接受了摩尔斯电码的教训,她的任务是将各种短语转换成莫尔斯电码.其中一个短语包括她的年龄,而不是写作---..,她写道,3-2.因为(用她的话说),"这样写的不那么简单." 这个基本的"压缩算法"引起了我的好奇心,所以我写了一些代码来实现它.
但是,我们在此过程中做了一些改变.我指给她,如果你写的只是.....-----,没有任何办法判断作者的意思50或eeeeettttt.实际上,每个单词的每个字母和每个单词之间都有一个暂停,所以这不是问题,但我们的方案没有那个.我拿出了一些方格纸并建议用另一个符号填充每个符号的莫尔斯码,以便于编码并消除方案中的歧义.我的好建议使用+因为"没有人用句子写那些." (哎呀,我最近刚毕业时获得了数学学位,但还算公平.)
因为我们中的一些不带写+,我们都使用连字符和句号/点,这与我们的摩尔斯电码标准的定义发生冲突,这些符号将被替换p,h和d分别.当然,这给我们带来了如何处理未在我们扩展的摩尔斯电码中定义的符号的问题.我的侄女想要简单地忽略它们,这就是我们所做的.为了区分大小写保留文本消息,大写字母在代码中不是低位的; 它们只是按原样进行填充+.
+p的+,d对于.和h为-.在我们的算法中,"Hello,World"转换为
H++++.++++.-..+.-..+---++,+++++++++W++++---++.-.++.-..+-..++
Run Code Online (Sandbox Code Playgroud)
并压缩到
H4+.4+.-2.+.-2.+3-2+,9+W4+3-2+.-.2+.-2.+-2.2+
Run Code Online (Sandbox Code Playgroud)
这是我扔在一起的Python代码:
#!/usr/bin/python3
import itertools
import string
class MorseString(str):
def __init__(self, string):
# or, pad values during iteration but this seems neater …Run Code Online (Sandbox Code Playgroud) 我正在制作一个程序,它接受输入并以计算机蜂鸣声的形式将其转换为莫尔斯代码,但我无法弄清楚如何制作它以便我可以在输入中放置多个字母而不会出现错误.
这是我的代码:
import winsound
import time
morseDict = {
'a': '.-',
'b': '-...',
'c': '-.-.',
'd': '-..',
'e': '.',
'f': '..-.',
'g': '--.',
'h': '....',
'i': '..',
'j': '.---',
'k': '-.-',
'l': '.-..',
'm': '--',
'n': '-.',
'o': '---',
'p': '.--.',
'q': '--.-',
'r': '.-.',
's': '...',
't': '-',
'u': '..-',
'v': '...-',
'w': '.--',
'x': '-..-',
'y': '-.--',
'z': '--..'
}
while True:
inp = raw_input("Message: ")
a = morseDict[inp]
morseStr = a
for c in morseStr:
print c …Run Code Online (Sandbox Code Playgroud) 我想使用Python 3+将莫尔斯电码转换为英语我已经设法使用此http://code.activestate.com/recipes/578407-simple-morse-code-translator-in-python/将英语转换为莫尔斯电码
但我想将莫尔斯电码转换为英语
我试图一次做一个字符,但问题是莫尔斯代码字母不像英文字母那样长,所以E是"." 而S是"......",我的问题是字典循环会找到"." 并将它与E匹配,所以我没有得到S我得到"EE E",而是试图通过检测空格并一次一个字来解决这个问题,但不是在单词中查找字母而是搜索整个单词字典我是Python和词典的新手,我不知道如何区分E"." 在搜索我的字典时,还有一个S"......"
这是我的代码
# defines the dictionary to convert morse to english
CODE_reversed = {'..-.': 'F', '-..-': 'X',
'.--.': 'P', '-': 'T', '..---': '2',
'....-': '4', '-----': '0', '--...': '7',
'...-': 'V', '-.-.': 'C', '.': 'E', '.---': 'J',
'---': 'O', '-.-': 'K', '----.': '9', '..': 'I',
'.-..': 'L', '.....': '5', '...--': '3', '-.--': 'Y',
'-....': '6', '.--': 'W', '....': 'H', '-.': 'N', '.-.': 'R',
'-...': 'B', '---..': '8', '--..': 'Z', '-..': 'D', …Run Code Online (Sandbox Code Playgroud) 我正在尝试将莫尔斯代码转换为文本.
我有两个文本文件用于此问题.morseCode.txt:我有一个我读过的文件,其中包含相应的字母和相应的摩尔斯电码.
morse.dat:包含摩尔斯电码加密消息的文件
我能够正确读取第一个文件然后存储到单独的数组中.我通过打印字母和数组莫尔斯代码来测试它,发现它确实按顺序存储它.
我在阅读第二个文件时遇到问题.这是morseCode.txt键:
A .-
B -...
C -.-.
D -..
E .
F ..-.
G --.
H ....
I ..
J .---
K -.-
L .-..
M --
N -.
O ---
P .--.
Q --.-
R .-.
S ...
T -
U ..-
V ...-
W .--
X -..-
Y -.--
Z --..
0 -----
1 .----
2 ..---
3 ...--
4 ....-
5 .....
6 -....
7 --...
8 ---..
9 ----.
. .-.-.-
, …Run Code Online (Sandbox Code Playgroud) 我正在用PHP写一个基本的莫尔斯电码转换器,可以将一个字符串转换成莫尔斯电码。它使用关联数组,foreach循环和for循环。它起作用,除了出于某种原因,它在每个转换的字符之后输出与“ 0”等效的摩尔斯电码。我不知道0的来源。如果我从关联数组中删除0,就没有问题,但是我也希望能够转换数字。如果有人能够给我一些反馈,将不胜感激。
这是代码:
<?php
$string = "dog";
$string_lower = strtolower($string);
$assoc_array = array(
"a"=>".-",
"b"=>"-...",
"c"=>"-.-.",
"d"=>"-..",
"e"=>".",
"f"=>"..-.",
"g"=>"--.",
"h"=>"....",
"i"=>"..",
"j"=>".---",
"k"=>"-.-",
"l"=>".-..",
"m"=>"--",
"n"=>"-.",
"o"=>"---",
"p"=>".--.",
"q"=>"--.-",
"r"=>".-.",
"s"=>"...",
"t"=>"-",
"u"=>"..-",
"v"=>"...-",
"w"=>".--",
"x"=>"-..-",
"y"=>"-.--",
"z"=>"--..",
"0"=>"-----",
"1"=>".----",
"2"=>"..---",
"3"=>"...--",
"4"=>"....-",
"5"=>".....",
"6"=>"-....",
"7"=>"--...",
"8"=>"---..",
"9"=>"----.",
"."=>".-.-.-",
","=>"--..--",
"?"=>"..--..",
"/"=>"-..-.",
" "=>" ");
for($i=0;$i<strlen($string_lower);$i++){
foreach($assoc_array as $letter => $code){
if($letter == $string_lower[$i]){
echo "$code<br/>";
}
}
}
?>
Run Code Online (Sandbox Code Playgroud) 我有一些莫尔斯代码丢失了字母之间的空格,我的挑战是找出消息所说的内容.到目前为止,由于可能存在大量的组合,我有点失落.
以下是我所拥有的消息的所有信息.
-..-...-...-...-..-.-.-.-.-..-.-.-.-.-.-.-.-.-.-..-...-.有没有人有一个聪明的解决方案?
如果代码采用以下格式(没有任何空格),是否有可能将莫尔斯代码解码为文本:
-.-..--.....-...--..----.
Run Code Online (Sandbox Code Playgroud)
通常它看起来像那样,
- .-. .- -. ... .-.. .- - .. --- -.
t r a n s l a t i o n
Run Code Online (Sandbox Code Playgroud)
但是有可能从没有空格的摩尔斯电码获得相同的文本吗?
我得到了这个任务,这是我到目前为止所做的代码.这个代码只接受一个字母,它应该比字母更多,所以我可以输入一个单词,它将是莫尔斯电码
#include "stdafx.h"
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
int _tmain(int argc, _TCHAR* argv[])
{
char input[80], str1[100];
fflush(stdin);
printf("Enter a phrase to be translated:\n");
scanf("%c", &input);
int j = 0;
for (int i = 0; i <= strlen(input); i++)
{
str1[j] = '\0';
switch(toupper(input[i]))
{
..................
}
j++;
}
printf("\nMorse is \n %s\n", str1);
fflush(stdout);
//printf("%s\n ",morse);
free(morse);
}
Run Code Online (Sandbox Code Playgroud) 对于这个项目,我试图解码给定的摩尔斯电码字符串。编码字符由一个空格分隔,单词由三个空格分隔。我很难通过单词空格。我不断收到“wordundefinedword”。
decodeMorse = function(morseCode) {
outPut = "";
for (var i = 0; i < morseCode.split(" ").length; i++) {
if (i === " ") {
outPut += " ";
} else {
outPut += MORSE_CODE[morseCode.split(" ")[i]];
}
}
return outPut;
}
Run Code Online (Sandbox Code Playgroud)
例子: ””.... 。-.--" "-- .- -."" -> "HEY MAN" 对不起,奇怪的引号。如果没有外部空间,它就不会显示空间。
我有一个函数可以检查字符串(参数)是否与数组中的值匹配并返回可能性键的数组
function find_possible_match( $criteria ) {
$possible_match = array();
$possibilities = array(
"a"=>".-",
"b"=>"-...",
"c"=>"-.-.",
"d"=>"-..",
"e"=>".",
"f"=>"..-.",
"g"=>"--.",
"h"=>"....",
"i"=>"..",
"j"=>".---",
"k"=>"-.-",
"l"=>".-..",
"m"=>"--",
"n"=>"-.",
"o"=>"---",
"p"=>".--.",
"q"=>"--.-",
"r"=>".-.",
"s"=>"...",
"t"=>"-",
"u"=>"..-",
"v"=>"...-",
"w"=>".--",
"x"=>"-..-",
"y"=>"-.--",
"z"=>"--..",
"0"=>"-----",
"1"=>".----",
"2"=>"..---",
"3"=>"...--",
"4"=>"....-",
"5"=>".....",
"6"=>"-....",
"7"=>"--...",
"8"=>"---..",
"9"=>"----.",
"."=>".-.-.-",
","=>"--..--",
"?"=>"..--..",
"/"=>"-..-.",
" "=>" ");
foreach ( $possibilities as $key => $value ) {
if( $value == $criteria ){
array_push( $possible_match , $key );
}
}
return $possible_match;
}
Run Code Online (Sandbox Code Playgroud)
这是非常标准的,是所有字符串的标准 …
morse-code ×10
python ×3
dictionary ×2
php ×2
algorithm ×1
arrays ×1
c ×1
c# ×1
converter ×1
java ×1
javascript ×1
loops ×1
preg-match ×1
puzzle ×1
python-3.x ×1
regex ×1