LeetCode top100 重複的子字串

2021-10-06 10:07:26 字數 788 閱讀 2932

給定乙個非空的字串,判斷它是否可以由它的乙個子串重複多次構成。給定的字串只含有小寫英文本母,並且長度不超過10000。

題目分析

輸入: 「abab」

輸出: true

解釋: 可由子字串 「ab」 重複兩次構成~

輸入: 「aba」

輸出: false

思路(一)

採用正規表示式匹配的方式,以輸入s=『abcabcabc』為例,其中(\w+)為捕獲組即匹配第一組abc,\1為匹配括號中的內容的一次重複,即第二個abc,』+'代表\1的內容至少出現一次,^和$為首尾匹配

注意:()捕獲組,以及\1重複一次的搭配使用

/** 

* @param s

* @return

*/var

repeatedsubstringpattern

=function

(s);

思路(二)

s = abc|abc; // 2abc

s+s = abc|abc|abc|abc; // 4abc

s1 = a|bcabcabcab|c = bcabcabcab; // bc + 2*abc + ab

s1中依然包含s,則s是重複的字串

/** 

* @param s

* @return

*/var

repeatedsubstringpattern

=function

(s);

LeetCode top100 每日溫度

請根據每日 氣溫 列表,重新生成乙個列表。對應位置的輸出為 要想觀測到更高的氣溫,至少需要等待的天數。如果氣溫在這之後都不會公升高,請在該位置用 0 來代替。例如,給定乙個列表 temperatures 73,74,75,71,69,72,76,73 你的輸出應該是 1,1,4,2,1,1,0,0 ...

LeetCode top100 顏色分類

給定乙個包含紅色 白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色 白色 藍色順序排列。此題中,我們使用整數 0 1 和 2 分別表示紅色 白色和藍色。注意 不能使用 庫中的排序函式來解決這道題 題目分析 輸入 2,0,2,1,1,0 輸出 0,0,1,1,...

LeetCode top100 有效的括號

給定乙個只包括 的字串,判斷字串是否有效。題目分析 有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。輸入 輸出 true 輸入 輸出 true 輸入 輸出 false 思路 一 使用棧的方法,後進先出,如果遇見左括號入棧,右括號出戰,最終判...