46 lines
1.1 KiB
Python
46 lines
1.1 KiB
Python
|
from itertools import pairwise, groupby
|
||
|
|
||
|
|
||
|
def nove_povezave(pot, zemljevid):
|
||
|
return pairwise(pot) - zemljevid.keys()
|
||
|
|
||
|
|
||
|
def obiskane_tocke(pot):
|
||
|
return set(pot)
|
||
|
|
||
|
|
||
|
def popravljena_pot(pot):
|
||
|
return "".join(k for k, g in groupby(pot))
|
||
|
|
||
|
|
||
|
def povezave_z_vescino(pot, zemljevid, vescina):
|
||
|
return [p for p in pairwise(pot) if vescina in zemljevid[p]]
|
||
|
|
||
|
|
||
|
def dolgocasna_pot(pot, zemljevid):
|
||
|
return set() in (zemljevid[p] for p in pairwise(pot))
|
||
|
|
||
|
|
||
|
def dobra_pot(pot, zemljevid):
|
||
|
return not False in (len(zemljevid[p]) >= 2 for p in pairwise(pot))
|
||
|
|
||
|
|
||
|
def zahtevnost_poti(pot, zemljevid):
|
||
|
return max(len(zemljevid[p]) for p in pairwise(pot))
|
||
|
|
||
|
|
||
|
def izvedljiva(pot, zemljevid, zivljenj):
|
||
|
return sum(p not in zemljevid for p in pairwise(pot)) < zivljenj
|
||
|
|
||
|
|
||
|
def enosmerne(zemljevid):
|
||
|
return {p for p in zemljevid if not (p[1], p[0]) in zemljevid}
|
||
|
|
||
|
|
||
|
def dvosmerne(zemljevid):
|
||
|
return {k: v for k, v in zemljevid.items() if (k[1], k[0]) in zemljevid}
|
||
|
|
||
|
|
||
|
def najzahtevnejsi_odsek(pot, zemljevid):
|
||
|
return max((len(zemljevid[p]), p) for p in pairwise(pot))[1]
|