CSES - Sanaruudukko

Annettuna on sanaruudukko ja tehtäväsi on etsiä sieltä sanoja. Sana voi kulkea pysty-, vaaka- tai vinosuunnassa etuperin tai takaperin.

Toteuta tiedostoon wordgrid.py luokka WordFinder, jossa on seuraavat metodit:

  • set_grid: metodille annetaan sanaruudukon sisältö listana, joka esittää ruudukon rivit merkkijonoina
  • count: laskee annetun sanan esiintymiskerrat ruudukossa

Jos sana voidaan lukea useaan suuntaan samoista ruudukon kirjaimista, metodin count tulee laskea tällaiset esiintymät vain yhtenä esiintymiskertana.

Luokkasi toimintaa testataan erilaisilla ruudukoilla. Jokaisessa ruudukossa leveys ja korkeus on enintään 20 merkkiä. Jokainen merkki on kirjain välillä AZ.

class WordFinder:
    def set_grid(self, grid):
        # TODO

    def count(self, word):
        # TODO

if __name__ == "__main__":
    grid = ["TIRATIRA",
            "IRATIRAT",
            "RATIRATI",
            "ATIRATIR"]

    finder = WordFinder()
    finder.set_grid(grid)

    print(finder.count("TIRA")) # 7 
    print(finder.count("TA")) # 13
    print(finder.count("RITARI")) # 3
    print(finder.count("A")) # 8
    print(finder.count("AA")) # 6
    print(finder.count("RAITA")) # 0