q:由 n 個連線的字串 s 組成字串 s,記作 s = [s,n]。例如,["abc",3]=「abcabcabc」。
如果我們可以從 s2 中刪除某些字元使其變為 s1,則稱字串 s1 可以從字串 s2 獲得。例如,根據定義,"abc" 可以從 「abdbec」 獲得,但不能從 「acbbe」 獲得。
現在給你兩個非空字串 s1 和 s2(每個最多 100 個字元長)和兩個整數 0 ≤ n1 ≤ 106 和 1 ≤ n2 ≤ 106。現在考慮字串 s1 和 s2,其中 s1=[s1,n1] 、s2=[s2,n2] 。
請你找出乙個可以滿足使[s2,m] 從 s1 獲得的最大整數 m 。
示例:輸入:
s1 ="acb",n1 = 4
s2 ="ab",n2 = 2
返回:2
a:找迴圈節
我們設計乙個雜湊表 recall :雜湊表 recall 以 s2 字串的下標 index 為索引,儲存匹配至第 s1cnt 個 s1 的末尾,當前匹配到第 s2cnt 個 s2 中的第 index 個字元時, 已經匹配過的s1 的個數 s1cnt 和 s2 的個數 s2cnt 。
我們在每次遍歷至 s1 的末尾時根據當前匹配到的 s2 中的位置 index 檢視雜湊表中的對應位置,如果雜湊表中對應的位置 index 已經儲存元素,則說明我們找到了迴圈節。迴圈節的長度可以用當前已經匹配的 s1 與 s2 的數量減去上次出現時經過的數量(即雜湊表中儲存的值)來得到。
然後我們就可以通過簡單的運算求出所有構成迴圈節的 s2 的數量,對於不參與迴圈節部分的 s1,直接遍歷計算即可
**:
public static int getmaxrepetitions(string s1, int n1, string s2, int n2) }}
count1++;
if (!map.containskey(p)) );
} else
}return count2 / n2;
}
Leetcode 466 統計重複個數
定義由 n 個連線的字串 s 組成字串 s,即 s s,n 例如,abc 3 abcabcabc 另一方面,如果我們可以從 s2 中刪除某些字元使其變為 s1,我們稱字串 s1 可以從字串 s2 獲得。例如,abc 可以根據我們的定義從 abdbec 獲得,但不能從 acbbe 獲得。現在給出兩個非...
LeetCode466 統計重複個數
題目描述 定義由 n 個連線的字串 s 組成字串 s,即 s s,n 例如,abc 3 abcabcabc 另一方面,如果我們可以從 s2 中刪除某些字元使其變為 s1,我們稱字串 s1 可以從字串 s2 獲得。例如,abc 可以根據我們的定義從 abdbec 獲得,但不能從 acbbe 獲得。現在...
leetcode解題之統計重複個數
由 n 個連線的字串 s 組成字串 s,記作 s s,n 例如,abc 3 abcabcabc 如果我們可以從 s2 中刪除某些字元使其變為 s1,則稱字串 s1 可以從字串 s2 獲得。例如,根據定義,abc 可以從 abdbec 獲得,但不能從 acbbe 獲得。現在給你兩個非空字串 s1 和 ...