Problem D
Unika Ord
Du ska skriva ett program som kan läsa in en följd av tecken, och som skriver ut startpositionen på den först förekommande unika delföljden av längd $N$. Indata består av en följd av alfanumeriska tecken (A-Z, a-z, 0-9), som kan vara högst $10\, 000\, 000$ tecken lång. $N$ kan vara mellan $0$ och $1000$. Om inga unika delföljder av längd $N$ finns skall programmet skriva ut $-1$. Med “unik delföljd” menas en följd av tecken som bara förekommer en enda gång.
Positionerna numreras från $0$, så att om t.ex $N=2$, och teckenföljden är “ABCDABC”, så är den första unika delföljden “CD”, och den börjar på position $2$.
Input
Indata består av ett heltal ($N$) som anger längden på den eftersökta delföljden. Därefter följer en teckenföljd bestående av mellan $1$ och $10\, 000\, 000$ tecken.
Output
Utdata ska bestå av ett enda heltal som anger startpositionen på den första unika delföljden av efterfrågad längd, eller $-1$ om inga unika delföljder av efterfrågad längd finns.
Sample Input 1 | Sample Output 1 |
---|---|
2 ABCDABC |
2 |
Sample Input 2 | Sample Output 2 |
---|---|
3 ABCDABC |
1 |
Sample Input 3 | Sample Output 3 |
---|---|
10 ABCDABCDABCDABCDABCDABCDABCDABCDABCDABCD |
-1 |