LeetCode-459-重復(fù)的子字符串

題目描述:給定一個(gè)非空的字符串,判斷它是否可以由它的一個(gè)子串重復(fù)多次構(gòu)成。給定的字符串只含有小寫英文字母,并且長(zhǎng)度不超過(guò)10000。
示例說(shuō)明請(qǐng)見(jiàn)LeetCode官網(wǎng)。
來(lái)源:力扣(LeetCode) ??
鏈接:https://leetcode-cn.com/problems/repeated-substring-pattern/ ??
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
解法一:字符串遍歷
首先,判斷特殊情況,當(dāng)該字符串只有一個(gè)字符時(shí),不可能由子串重復(fù)構(gòu)成,所以直接返回false;
如果當(dāng)前子串的長(zhǎng)度不能被原字符串的長(zhǎng)度模除結(jié)果為0,說(shuō)明這個(gè)子串不可能多次重復(fù)構(gòu)造成原字符串,直接跳過(guò);
獲取當(dāng)前要判斷的子串;
根據(jù)原字符串的長(zhǎng)度獲得當(dāng)前子串需要重復(fù)多少次才能構(gòu)成原字符串;
遍歷判斷是否可以重復(fù)構(gòu)成原字符串,如果可以,直接返回true,否則,繼續(xù)判斷下一個(gè)子串。
最后,如果沒(méi)有子串可以重復(fù)多次構(gòu)成原字符串,則返回false。
【每日寄語(yǔ)】 挫折是一塊石頭,對(duì)于弱者來(lái)說(shuō)它是拌腳石,讓你停步不前。而對(duì)于強(qiáng)者來(lái)說(shuō)它是墊腳石,使你站得更高。