題目描述:
完美子串的數量題目分析:如果乙個字串的子串包含了該字串中所有出現過的字元,這樣的子串我們把它稱作原字串的完美子串。比如,對於字串
「abcdabcabc」,子串 「abcd」,「bcda」,「abcdabcabc」……,都是它的完美子串。
給定乙個只包含小寫英文本元的字串,請求出它的完美子串的個數。
在遇到類似的求最長字元、最短字元、滿足要求字元時,我們往往會想到動態規劃,這本身就是這道題目的乙個難點
而對於題目要求的完美字元,我們需要首先知道,針對該字串而言,完美字元必須包含哪幾個才行,因此需要用到統計,這裡可以用map或set實現
接下來就是動態規劃思想如何應用的問題,這道題的突破口在於:初始狀態定義,當找到這個方向後就越過了乙個大山
解答過程
遍歷字串,使用set中的去重功能,統計需要有多少種字元。以題目中的例子,需要有abcd才可以滿足
可以自行繪製一張圖示,幫助分析動態規劃的過程,例如下圖
動態轉移方程:f(x,y)=f(x,y-1)-s[y]
初始狀態:""空子串距離滿足要求的子串為計算得到的str
若某點為空「」,則將s.substr(x,y-x)放入vector
**:
vector
getperfectstr
(string& s)
string countstr ="";
for(
auto c : mp)
//到此,統計字元結束
//初始化
for(
int i =
0; i < len +
1; i++)}
for(
int i =
0; i < len +
1; i++
)else
dp[i]
[j]= dp[i]
[j -1]
;if(dp[i]
[j]=="")
}}return res;
}
2023年面試題 數數問題
該博文講述2021年美團春招原題,數數 題目描述 小美正在統計她公司的資料。她想要知道一定時間段內的某種特徵。因此,她將n條資料按時間排好序依次給出,想要知道以某條資料開始的乙個連續資料段內資料的眾數情況。形式化地,始出n個數a1 an分別表示時刻1,2 n的資料值。小美想要知道連讀x條資料的情況,...
2023年軟體測試常見的面試題
今天也依然愛你 很多人對軟體測試都有這樣一種認知 測試門檻低,通過幾個月的自學,或短期的培訓,就能找到高薪的工作。但是軟體測試,絕非簡單的 點點點 根據需求 編寫測試用例 是作為測試人員應該具備的基本能力。很遺憾,追求速成學習的人員,並不具備這樣的能力,不僅不會分析需求文件,連測試用例是什麼都不知道...
前端面試題 2023年web前端開發面試題
本文章作為2021屆應屆畢業生在實習面試期間所接受的前端面試的面試題。css盒子模型的要素,css中常用偽元素選擇符 position屬性四個值 static fixed absolute和relative的區別和用法 解釋css樣式中display中inline block inline bloc...