字串 A001 統計重複個數(暴力 優化)

2021-10-05 06:03:19 字數 1048 閱讀 2374

由 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...