Miksi putkapostin ratkaisuyritys tuottaa väärän tuloksen?

Anonyymi

3

502

    Vastaukset 3

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Sulla kun on tuo testi

      s[pos-i] == s[pos i]

      niin sehän testaa että pos:ista eteen- ja taaksepäin on samoja merkkejä eli noin löytyisi (parittoman pituisia) palindromi-pötköjä.
      Pitää testata, että vierkkäiset merkkijonot i:n matkalta ovat samat eli

      s[pos-i:pos] == s[pos:pos i]

      Sittenhän tulee ongelmaksi se, että luuppia ei voi katkaista, jos eroava indeksi löytyy, koska se ei tarkoita, että suuremmalla i:n arvolla ei voisi löytyä toistojaksoa.
      Nuo korjaukset kun tekee (ja tallenna bestPos, se taisi sinulta unohtua, eikä mjonoa tarvitse mihinkään) ja output olisi näin

      print(str(tapaus) " " str(maximi) " " str(bestPos-maximi 1))

      Mutta nyt siis ongelma on että tuo koodi on melkolailla hidas. Itse huijasin ja käytin seuraava Sage-koodia:

      from sage.combinat.words.suffix_trees import DecoratedSuffixTree
      s = 'hfhfggccaggccagccafff'
      start, run2 = max((x[1], x) for x in DecoratedSuffixTree(Word(s)).square_vocabulary())[1]
      print ("{} {}".format(run2/2, start 1))

    • Tänne oli tullut viesti, mutta AI ilmeisesti poistanut (ihan asiallinen mitä alkua inboxistani näin). Kannattaa laittaa koodit linkin taakse johonkin ulkoiseen juttuun, jos se niiden takia poistelee viestejä.

      Tein nyt Python-version, jossa käytin kirjastoa https://pypi.org/project/suffix-trees/ . (Käytin aluksi https://pypi.org/project/suffix-tree/ :aa, mutta se on erittäin paljon hitaampi.) Ensin muodostetaan suffiksipuu ja siitä käydään sitten kaikki sisäsolmut läpi, joista jokaiselle käydään sen solmun lehtisolmu parit, joiden syvyyksien erotus on solmun syvyys. Koittelin tuohon tehdä erinäisiä parannuksia eritoteen 9 ja 10 tapauksissa taisi auttaa sellainen, että ensin tallennetaan dictiin kaikki lehtisolmut syvyyden mukaan ja sieltä voidaan sitten poimia tarvitun syvyinen pari kun yksi lehti on kiinnitetty, tarkastetaan vain onko se oikeassa haarassa. Joissain tapauksissa tuo taitaa vaan tulla liian hitaaksi (jos tutkitun syvyisiä lehtiä on paljon).

      Tässä koodini https://repl.it/@minkkilaukku2/Mannynpera2#main.py . Ei toimi Python 3:lla, koska siellä _SNodella ei ole __dict__ -attributtia mutta Python 2:ssa on, mitä hittoa?!?? Ahaa: https://stackoverflow.com/questions/41658015/object-has-no-attribute-dict-in-python3
      Loppujen lopuksi sain tavalla tai toisella tuolla koodilla kaikki tapaukset järjellisessä ajassa ratkaistua.

      Noh,

      Putkapostin kommenteissa ollut seuraava idea näyttää toimivan paljon nopeammin:
      https://repl.it/@minkkilaukku2/Mannynpera1#main.py

    Ketjusta on poistettu 1 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Mikä hänessä

      Saa sut kuumaksi?
      Ikävä
      85
      1305
    2. Henkilöauto ajoi puuhun Suomussalmella

      Henkilöauto ajoi puuhun Suomussalmen torin laitamilla. Poliisi epäilee tutkivansa tapausta. Silminnäkijä
      Suomussalmi
      31
      955
    3. Kattoikkuna puuttui - vai puuttuiko sittenkään?

      Tönölään ei saatu mökkejä, kun kattoikkunasta oli pula. Näyttää konkurssihakemus tulleen kuitenkin 31.8., joten kattoikk
      Kuhmo
      19
      815
    4. Hei sinä nainen

      Haluaisin koko ajan olla kiinni sinussa😟❤️❤️
      Ikävä
      46
      639
    5. Kajaanissa on kadoksissa 27vuotias nainen.

      Poliisin tiedoteessa on ,että 1.9.2026 katosi kajaanissa 27vuotias nainen. Kuva löytyy ja tiedot pituudesta ,iästä yms.
      Kajaani
      13
      630
    6. Kuka oli kuskina

      Volvo suistunut päin koivua torin laidalla? Oliko vauhtia liikaa vai sairaskohtaus vai humala?
      Suomussalmi
      13
      617
    7. Nythän todellisuus on kuitenkin se

      että miehen täytyy tehdä miehen työ. Olla mies. Naisen täytyy tehdä naisen työ. Olla nainen. Voimme puhua pehmeitä ja
      Sinkut
      181
      592
    8. Petteri A-studiossa: "Ihmiset ovat alkaneet saada töitä" ..mitä vitt..

      Missä todellisuudessa toi Orpo oikein elää, Suomen työttömyys 2000-luvun ja EU/OECD-maiden korkein tuplat niiden keskita
      Maailman menoa
      123
      590
    9. Onko kaivattusi

      hyvä ihminen? Kerro
      Ikävä
      28
      508
    10. Mies sun käytös satutti...

      Mahdatko sitä ymmärtää...😔 Olisipa kaikki mennyt hyvin. Vaikea tästä on enää mitään ihanaa rakentaa.
      Ikävä
      39
      498
    Aihe