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. Suomalaisten pinna paloi - Ärsytys iskee uudesta TTK-juontajasta "Eihän tälle voi kun nauraa"

      Oliko Veronica Verho hyvä valinta TTK-juontajaksi? Uuden TTK-juontajan henkilöllisyyttä on arvailtu siitä asti, kun Va
      Suomalaiset julkkikset
      68
      1865
    2. Nainen, onko sinussa sitä aitoa feminiinisyyttä jäljellä

      Vai onko se jäänyt meikkien, korujen, hameiden ym. alle peittoon? Onko naisellisuutesi aitoa vai opetettua? Jos teet nai
      Ikävä
      366
      1209
    3. Kirjoita jotain

      Kivaa, hellää ja piristävää
      Ikävä
      139
      992
    4. Missäs se Miss Suomussalmi luuraa?

      Jokin aika sitten eräs myyjätär tituleerasi itsensä Miss Suomussalmeksi. Asiakas oli kuulemma Tokmannin kassalla todennu
      Suomussalmi
      17
      900
    5. Mitäpä luulet että tykkääkö

      kukaan kaivatustasi ?
      Ikävä
      82
      655
    6. Päälle hautaus?

      Hautauksissa puhutaan päällehautauksista jos vaikka mies on kuollut ensin ja vaimo 20 vuotta myöhemmin! Todellisuudessa
      Lieksa
      102
      644
    7. Voisit nainen joskus vastata minulle

      Ja antaa jotain itsestäsi. Pientä tunnistetta ja juttua itsestäsi ja meistä. Kannustan.
      Ikävä
      63
      642
    8. Varmaan aika moni

      Haluaisi sinut enemmän kuin mielellään
      Ikävä
      41
      638
    9. T rakastan sua

      vaikket sitä usko
      Ikävä
      57
      547
    10. On tuota ikäeroa meillä kyllä aivan liian paljon

      Etsi samanikäistä kuin olet, niin minäkin.
      Ikävä
      46
      546
    Aihe