Esa (fingerat namn) jobbar som DNA-forskare. Han har på egen hand uppfunnit ett eget
sätt att katalogisera och systematisera olika genuppsättningar, helt skillt från de
gängse metoderna. Han har uppfunnit en maskin som utför analysen av genmaterialet åt honom,
men han har ett litet problem. Hans maskin producerar en massa utdata. Esa har lite svårt att
sortera ut vad det är som han letar efter i det analyserade materialet, helt enkelt för
den stora mängden utdata. Maskinens utdata ser ut som ett slags lång ström av
bokstäver och siffror blandat huller om buller, vad Esa vill ha ut är antalet
förekomster av vissa DNA-koder. Dessa koder består av alla unika permutationer av en viss
kombination av bokstäver och siffror.
Notera
En sträng med flera kopior av samma tecken ger upphov till flera likadana permutationer. Esa vill
att ABB och ABB skall bara skall generera en träff i strängen GABBU.
Esa använder bara bokstäver A-Z, a-z och siffror 0-9
Utdata från maskinen är max 255 tecken och den längsta DNA-kod som Esa söker
är på 15 tecken.
Exempel1:
Esa söker DNA-koden: AB
Det vill säga att du skall hitta alla förekomster av AB och BA i utdata
från maskinen.
Utdata från maskinen: ABCACBABC
Resultat: 3 (ABCACBABC)
Observera att 'A':t i mitten ingår i två förekomster av det sökta mönstret.
Exempel2:
Esa söker DNA-koden: ABC
Det vill säga att du skall hitta alla förekomster av ABC, ACB, BAC, BCA,
CAB och CBA i utdata från maskinen.
Utdata från maskinen: ABCPCBAOBC
Resultat: 2 (ABCPCBAOBC)
INDATA: Består av heltalet n på rad 1 och därefter n bekrivningar av sökningar.
Första raden av varje sökning består av DNA-koden och den andra av utdata från maskinen.
UTDATA: Skall vara ett heltal för antalet gånger som Esas sökta DNA-kod finns i utdata
från maskinen. Ett tal för var och en av de n beskrivningarna.
Exempel på indatafilen:
Filen | Kommentarer |
2 | Antalet "deluppgifter" som finns i filen |
AB | Esas första sökta kombination |
ABCACBABC | Första utdata från maskinen |
C1A | Esas andra och sista sökta kombination |
1ACB3FKkL3ioR98JKJKSSSD | Andra och sista utdata från maskinen |
Resultatet av en körning av ovanstående fil skall vara:
3
1