# HP Code wars 2013
# problem 12
# Morse Code Palindrome
# 6 points
def botschaft_decodieren(botschaft):
""" Bekommt eine Botschaft und setzt sie
in Morsezeichen um. Leerzeichen und Satzzeichen
werden ignoriert. Kleinbuchstaben werden nicht
erwartet oder beachtet.
"""
morsecode = {"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": "--••"}
codierte_botschaft = []
for a in botschaft:
codierte_botschaft.append(morsecode.get(a,""))
return "".join(codierte_botschaft)
def palindrom_testen(datensatz):
""" Testet auf ein Palindrom und
schickt den Datensatz dazu zum decodieren
"""
botschaft = botschaft_decodieren(datensatz)
if botschaft == botschaft[::-1]:
return True
else:
return False
data = """ELEGIZED
QUIRKILY
MERCURY
FACE A WINE
HAPPY DAY
FEVER REBEL
SOPRANOS
EMIT OLD UFO TIME
PROTEIN POWDER
ANNEXING
ENJOIN
. """
datensaetze = data.split("\n")
for datensatz in datensaetze:
datensatz = datensatz.strip(" ")
if not datensatz == ".":
if palindrom_testen(datensatz):
print ("{} is a MCP".format(datensatz))
else:
print("{} is *not* a MCP".format(datensatz))
Anders als einige andere Aufgaben des diesjährigen Wettbewerbs eher keine Herausforderung.
Posts mit dem Label Morsecode werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Morsecode werden angezeigt. Alle Posts anzeigen
Sonntag, 10. März 2013
Morse Code Palindrome
Das „Morse Code Palindrome“-Problem gehört zum „HP Code wars“-Wettbewerb 2013 und war eher sehr einfach zu lösen. Einmal galt es eine Botschaft in Morsecode zu übersetzen und dann die Botschaft auf ihre Palindrom-Eigenschaft hin zu untersuchen:
Abonnieren
Posts (Atom)