Ja bych na to sel jinak:
class Rotator(object):
def __init__(self, input):
self.data = input + input
self.size = len(input)
self.indices = range(self.size)[:]
self.indices.sort(key=lambda x: self[x])
def __getitem__(self, index):
return buffer(self.data, index, self.size)
Dne 16. června 2015 11:03 Jirka Vejrazka jirka.vejra...@gmail.com
napsal(a):
Proste z toho stringu odvodis nejakou hodnotu, ktera umozni razeni. A
sorted() ti podle ni ochodne seradi, pro kazdou polozku se ta hodnota key
bude pocitat jenom jednou (narozdil od cmp).
No a to je právě ten
Proste z toho stringu odvodis nejakou hodnotu, ktera umozni razeni. A
sorted() ti podle ni ochodne seradi, pro kazdou polozku se ta hodnota key
bude pocitat jenom jednou (narozdil od cmp).
No a to je právě ten problém - sort zavolá key jenom jednou a výsledek si
zapamatuje, jenže je toho
Zdravím,
Doporučil bych ještě jeden úhel pohledu -- před rozhodnutím o způsobu
implementaci. Neznám detaily řešeného problému, takže spíš obecně. Já vím, že
je to jasné, ale někdy si neškodí zopaovat zásady ;)
U každého řešeného problému lze analyzovat složitost -- časovou a paměťovou.
Ja nevim, skoly nemam, a nebudu se poustet do polemiky o lazy objektech, od
toho jsou tu jini.
Jenom nahodim jednu vec. Kdysi jsem resil neco podobneho, ale misto sort()
jsem pouzil sorted() a parametr key. Ten umoznuje ohodnotit kazdou
polozku nejakou hodnotou a potom setridit podle techto
2015-06-15 22:36 GMT+02:00 Lumír Balhar frenzy.madn...@gmail.com:
Ahoj všem.
Řeším s kamarádem jeden jeho projekt, jehož součástí je i Burrows-Wheelerova
transformace, která se používá před kompresí dat společně s Move to Front
transformací pro snížení entropie vstupních dat a tím zvýšení