ich habe eine Frage zu einem Beispiel (siehe Link:https://ibb.co/rmjqXfN)
Dies ist der Code der Angabe:
Code: Alles auswählen
class MorseSymbol:
def __init__(self, v):
self.value = v
self.left = None
self.right = None
class MorseTree:
def __init__(self):
self.start = MorseSymbol(None)
def add(self, value, morseCode):
self.add_symbol(self.start, value, morseCode)
def add_symbol(self, sym, value, morseCode):
if sym == None:
sym = MorseSymbol(None)
if not morseCode:
sym.value = value
return sym
# YOUR CODE HERE #
return sym
def decode(self, sym, code, current):
# YOUR CODE HERE #
pass
def decode_list(self, codes):
sb = ""
for code in codes:
sb += self.decode(self.start, code, 0)
return sb
m = MorseTree()
m.add('E', ".")
m.add('T', "_")
m.add('I', "..")
m.add('A', "._")
m.add('N', "_.")
m.add('M', "__")
assert m.decode_list(["_", ".", "._"]) == "TEA"
Code: Alles auswählen
class MorseSymbol:
def __init__(self, v):
self.value = v
self.left = None
self.right = None
class MorseTree:
def __init__(self):
self.start = MorseSymbol(None)
def add(self, value, morseCode):
self.add_symbol(self.start, value, morseCode)
def add_symbol(self, sym, value, morseCode):
if sym == None:
sym = MorseSymbol(None)
if not morseCode:
sym.value = value
return sym
# YOUR CODE HERE #
left = True
for c in morseCode:
last_sym = sym
if c == '.':
sym = sym.left
left = True
if c == '_':
sym = sym.right
left = False
newSym = MorseSymbol(value)
if left:
last_sym.left = newSym
else:
last_sym.right = newSym
return sym
def decode(self, sym, code, current):
if len(code) == 0:
return ""
for c in code:
if c == '.':
sym = sym.left
if c == '_':
sym = sym.right
return str(sym.value)
def decode_list(self, codes):
sb = ""
for code in codes:
sb += self.decode(self.start, code, 0)
return sb
m = MorseTree()
m.add('E', ".")
m.add('T', "_")
m.add('I', "..")
m.add('A', "._")
m.add('N', "_.")
m.add('M', "__")
Ich verstehe leider weder Angabe, noch den dazu ergänzten Code. Kann mir einer kurz erklären worum es hier geht?
Vielen Dank!