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

Anonyymi

3

379

    Vastaukset

    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. Persut ja Tall poppy -syndrooma

      Persut ovat uhranneet käytännössä koko elämänsä lannistaakseen tai sabotoidakseen yksilöitä, jotka erottuvat joukosta ky
      Maailman menoa
      17
      4901
    2. Oot mahtava tyyppi

      En tiedä luetko palstaa. Koitan siitä huolimatta. Oot mun mielestä tosi erityinen tyyppi. Nopeesti taisin ihastua. Jot
      Ikävä
      44
      4794
    3. Orpo: Seuraavalla hallituksella ei ole yhtään enempää rahaa

      Valtiovarainministeriön virka-arvion mukaan julkisen talouden sopeutuksen tarve on noin kymmenen miljardia euroa ensi va
      Maailman menoa
      216
      3988
    4. Suomen kieli hiipuu vähitellen Vantaalla

      nykytahdilla jo joka kolmas vantaalainen on vieraskielinen 2030-luvun alussa. Maahanmuutto, suomalaisten alhainen synty
      Maailman menoa
      55
      3699
    5. Miksi vihereät ja vasemmisto haluavat tuhota tämän maan?

      He halusivat, että kannabis tulisi lailliseksi? - eikö kylliksi nuoria tuhota jo nyt huumeilla? - kannabis tuhosi minun
      Maailman menoa
      123
      3624
    6. Sofia servasi Pikku-Villen suvereenisti

      – Ihanko tosissaan tuleva sosiaali- ja terveysministeri hyökkää oppositiopuolueen puheenjohtajaa vastaan siksi, että täm
      Maailman menoa
      73
      3144
    7. Kun puolustusvoimat on huolissaan nuorison huonosta kunnosta

      ajatellen varusmiespalvelusta(kun moni joutuu keskeyttään), niin johan tuli joku yliopiston vasemmistonainen selittään,
      Maailman menoa
      117
      2071
    8. Ikävän karkoitukseen klassikkokysymys

      Mikä biisi saa hymyn huulille ja ajatukset mukavasti siihen yhteen ja ainoaan? 🤩 Laita biisin sanat, älä linkkiä. Alo
      Ikävä
      12
      1100
    9. Elämäni rakkaus

      Sitä sinä olet minulle ollut. Siksi tämä on kai niin vaikeaa. Jos sinä luopuisit niin ehkä se tulisi luonnostaan sitten
      Ikävä
      63
      937
    10. Millainen mulle

      Sitten sopisi?
      Ikävä
      93
      832
    Aihe