eli拿到了乙個僅由小寫字母組成的字串。
她想擷取一段連續子串,這個子串包含至少k個相同的某個字母。
她想知道,子串的長度最小值是多少?
注:所謂連續子串,指字串刪除頭部和尾部的部分字元(也可以不刪除)剩下的字串。例如:對於字串「arcaea」而言,「arc」、「rcae」都是其子串。而「car」、「aa」則不是它的子串。
第一行輸入兩個正整數n和k
輸入僅有一行,為乙個長度為n的、僅由小寫字母組成的字串。
如果無論怎麼取都無法滿足條件,輸出-1。
否則輸出乙個正整數,為滿足條件的子串長度最小值。
5 2
abeba
3
選擇「beb」子串,長度為3,其中包含相同的兩個'b'
使用vector d[26],按字母存入字串的下標,
使用minn=min(minn,d[i][j+k-1]-d[i][j]),掃一遍就好。
#include#include#includeusing namespace std;
int n,k;
char x[200005];
vectord[26];
int main()
int minn=200005;
bool flag=false;
for(int i=0;i<26;i++)
} }if(flag)
cout
cout<<"-1"
}
2020寒假牛客第一場 G eli和字串
1 某個字母不確定,無從下手 牛客競賽題解 一,簡單的佇列模擬 遍歷字串,每次 1 把每個字元放進乙個佇列que maxn 中,把每個字元 j int str i a 1 放進對應26個字母字首和陣列num 30 裡。2 直到某次str i 這個字母在num j 記錄的個數達到k次,讓字母從頭開始出...
牛客 倒置字串
經過函式後變為 beijing.like i 輸入描述 每個測試輸入包含1個測試用例 i like beijing.輸入用例長度不超過100 輸出描述 依次輸出倒置之後的字串,以空格分割 1.先把字串整體倒轉 反轉前 i like beijing.反轉後1 gnijied ekil i 2.把字元傳...
牛客陣列和字串2 5
基礎很不紮實,一邊學新的,一邊刷題好了 求距離 1006 求距離 牛客競賽語法入門班陣列字串習題 nowcoder.com 給你乙個1 n的排列,現在有一次機會可以交換兩個數的位置,求交換後最小值和最大值之間的最大距離是多少?第一行乙個數n 之後一行n個數表示這個排列 輸出一行乙個數表示答案示例1 ...