leetcode-day08-字符串

重復(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)成。

代碼:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容