CSES - Toistaminen

Tehtäväsi on selvittää, kuinka pitkä on lyhin merkkijono, jota toistamalla voidaan muodostaa annettu merkkijono. Esimerkiksi kun merkkijono on abcabcabcabc, lyhin toistettava merkkijono on abc.

Merkkijono muodostuu merkeistä az ja siinä on enintään 100 merkkiä.

Python

Toteuta tiedostoon repeat.py funktio find, joka antaa toistettavan merkkijonon pituuden.

def find(s):
    # TODO

if __name__ == "__main__":
    print(find("aaa")) # 1
    print(find("abcd")) # 4
    print(find("abcabcabcabc")) # 3
    print(find("aybabtuaybabtu")) # 7
    print(find("abcabca")) # 7

Java

Toteuta tiedostoon Repeat.java metodi find, joka antaa toistettavan merkkijonon pituuden.

public class Repeat {
    public int find(String s) {
        // TODO
    }

    public static void main(String[] args) {
        Repeat r = new Repeat();
        System.out.println(r.find("aaa")); // 1
        System.out.println(r.find("abcd")); // 4
        System.out.println(r.find("abcabcabcabc")); // 3
        System.out.println(r.find("aybabtuaybabtu")); // 7
        System.out.println(r.find("abcabca")); // 7
    }
}