CSES - Eri toistot

Toteuta luokka TrackRepeat, jossa on seuraavat metodit:

  • add(x, k): lisää luku x listalle k kertaa
  • check(): ilmoita True jos kaikki listan luvut toistuvat eri määrän kertoja ja muuten False

Kummankin metodin tulee toimia ajassa O(1)O(1).

Esimerkiksi listalla [1,3,1,1,2,3,1][1,3,1,1,2,3,1] on kolme lukua 11, 22 ja 33. Luku 11 toistuu 44 kertaa, luku 22 toistuu 11 kerran ja luku 33 toistuu 22 kertaa. Niinpä kaikki listan luvut toistuvat eri määrän kertoja (44, 11 ja 22 kertaa).

Toteuta tiedostoon trackrepeat.py luokka TrackRepeat seuraavan mallin mukaisesti.

class TrackRepeat:
    def __init__(self):
        # TODO

    def add(self, x, k):
        # TODO

    def check(self):
        # TODO

if __name__ == "__main__":
    t = TrackRepeat()
    print(t.check()) # True
    t.add(1, 3)
    print(t.check()) # True
    t.add(2, 3)
    print(t.check()) # False
    t.add(2, 2)
    print(t.check()) # True
    t.add(3, 1)
    print(t.check()) # True
    t.add(3, 4)
    print(t.check()) # False