重復(fù)的子字符串

題解:
首先找到 s 的最短重復(fù)子串 t,即 t 是 s 的一個前綴,并且 s 可以由 t 重復(fù)若干次得到。具體方法是從字符串的中間位置開始,逐步縮小范圍,直到找到一個長度為 len(s)//2 或更短的子串 t,使得 s 可以由 t 重復(fù)若干次得到。如果不存在這樣的子串,則 s 不可能由其子串重復(fù)多次構(gòu)成。
檢查 s 是否可以由 t 重復(fù)若干次得到。具體方法是判斷 len(s) 是否是 len(t) 的倍數(shù),如果不是則 s 不可能由 t 重復(fù)若干次得到;否則將 s 分解為 len(t) 個子串,檢查每個子串是否等于 t。如果所有子串都等于 t,則 s 可以由 t 重復(fù)若干次得到;否則 s 不可以由其子串重復(fù)多次構(gòu)成。
代碼:
