由 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 滿足 [s2,m]即 acbacbacbacb 中,刪除任意字元後,會出現 abab 的最大個數
刪除 s1 中的所有 c , 則剩下的字母由 2 個 abab 組成
所以返回 2
即 m = 2 , s1 = [s2, 2]
輸入:
s1 =
"acb"
,n1 =
4s2 =
"ab"
,n2 =
2返回:
2
列舉 s1,然後統計 s2 在 s1 出現的次數。
超時錯誤:這樣的暴力匹配,時間複雜度為 o
(100∗n
1)
o(100* n1)
o(100∗
n1),n1 最大為 10^6,整體計算量為 108
10^8
108…
public
intgetmaxrepetitions
(string s1,
int n1, string s2,
int n2)
if(k == sb2.
length()
)}return m;
}
優化一:
優化二:
統計重複字串的個數
題目 統計重複字串的個數,並輸出。示例輸入 abcdef 示例輸出 a1b1c1d1e1f1 示例輸入 abbbbbbbbbbbcc 示例輸出 a1b11c2 實現 如下 ifndef strrepeat h define strrepeat h include include include vo...
統計字串中重複的字元個數並輸出
輸出字串各個字元的個數 對重複的字元將其下標存放在vector中,使用unique函式只儲存乙份重複字元的數字 通過下標查詢到相應的字元,從map中取出對應的統計數字 using namespace std int main sort coll.begin coll.end pos unique c...
演算法訓練 字串統計 (暴力)
問題描述 給定乙個長度為n的字串s,還有乙個數字l,統計長度大於等於l的出現次數最多的子串 不同的出現可以相交 如果有多個,輸出最長的,如果仍然有多個,輸出第一次出現最早的。輸入格式 第一行乙個數字l。第二行是字串s。l大於0,且不超過s的長度。輸出格式 一行,題目要求的字串。輸入樣例1 4 bba...