2023年面試題 完美子串的數量

2021-10-21 16:48:53 字數 1093 閱讀 2724

題目描述:

完美子串的數量

如果乙個字串的子串包含了該字串中所有出現過的字元,這樣的子串我們把它稱作原字串的完美子串。比如,對於字串

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