-
-
Save gronnbeck/3736905 to your computer and use it in GitHub Desktop.
from sys import stdin, stderr | |
import traceback | |
class Node: | |
def __init__(self): | |
self.barn = {} | |
self.posi = [] | |
def bygg(ordliste): | |
hashmap = {} | |
for word in ordliste: | |
deep(hashmap, list(word[0]), word[1]) | |
print hashmap | |
return hashmap | |
def deep(hashmap, letterList, position): | |
while len(letterList) > 0: | |
a = letterList.pop(0) | |
if not hashmap.has_key(a): | |
hashmap[a] = {} | |
deep(hashmap[a], letterList, position) | |
return hashmap | |
def posisjoner(ord, indeks, node): | |
return [] | |
try: | |
ord = stdin.readline().split() | |
ordliste = [] | |
pos = 0 | |
for o in ord: | |
ordliste.append( (o,pos) ) | |
pos += len(o) + 1 | |
toppnode = bygg(ordliste) | |
for sokeord in stdin: | |
sokeord = sokeord.strip() | |
print sokeord + ":", | |
posi = posisjoner(sokeord, 0, toppnode) | |
posi.sort() | |
for p in posi: | |
print p, | |
except: | |
traceback.print_exc(file=stderr) |
det lager en tuppel som jeg bruker for å bygge treet. Mangler bare den delen der jeg plasserer posisjonen som en del i treet for hver gang et ord slutter
endret deep nå:
def deep(hashmap, letterList, position):
while len(letterList) > 0:
a = letterList.pop(0)
if not hashmap.has_key(a):
hashmap[a] = {}
deep(hashmap[a], letterList, position)
if (len(letterList) == 0 i == 0):
try:
hashmap['pos'].append(position)
except:
hashmap['pos'] = [position]
return hashmap
dårlig indent der bror...
Som jeg sa på facebook så ser det ut som alle ordene som blir sendt inn i hovedmetoden deler sammen position.
Så kopier elementene fra position til new_position og send den med videre. Slik,
new_position = []
for p in position:
new_position.append(p)
def deep(hashmap, letterList, position):
while len(letterList) > 0:
a = letterList.pop(0)
if not hashmap.has_key(a):
hashmap[a] = {}
new_position = []
for p in position:
new_position.append(p)
deep(hashmap[a], letterList, new_position)
return hashmap
faen dårlig indent på meg også. Men du skjønner tegninga.
Hva er intended use for?