模擬題 字串 列舉 貪心 字串

2021-10-09 19:47:30 字數 1378 閱讀 3598

【題目描述】

小林與亮亮正在做乙個遊戲。小林隨意地寫出乙個字串,字串只由大寫字母組成,然後指定乙個非負整數m

mm,亮亮可以進行至多m

mm次操作,每次操作為交換相鄰兩個字元。亮亮的目標是使得操作後的字串出現最長相同的字元的長度最大。你能幫亮亮計算一下這個最大長度是多少嗎?

【輸入格式】

第一行乙個字串sss。

第二行乙個整數mmm。

【輸出格式】

只有乙個整數,表示所求的最大長度。

【樣例輸入】

abccdcddc

4

【樣例輸出】

4
【資料規模】

對於20

%20\%

20%的資料,字串長度l

<=10

,m

<=6

l<= 10, m <= 6

l<=1

0,m<=6

;對於另外20

%20\%

20%的資料,m=0

m=0m=

0;對於另外20

%20\%

20%的資料,m

>=l

∗l

m >= l*l

m>=l

∗l;對於另外 20

%20\%

20%的資料,字串中只含有 a,b

a,ba,

b 兩個字母。

對於 100

%100\%

100%

的資料,l

<=50

,0

<=m

<

=5000

l<=50, 0 <= m <= 5000

l<=5

0,0<=m

<=5

000。

列舉每乙個字母,預處理出每乙個由相同字母組成的連續區間,列舉每乙個區間,將離此區間最近的相同字母移到此區間旁,記錄操作次數,超過m

mm次則不能移。答案記錄每一次移完後相同連續區間的最大值。

**如下:

#include#define n 100

using namespace std;

char s[n];

int a[n];

int m,cnt,l,flag;

int maxx=-1e9;

struct nodech[n];

int main()

else if(y==l+1)

else

else

}if(ans>m)

}maxx=max(maxx,r-l+1);

} }cout

}

字串問題 字串的統計字串

題目 給定乙個字串str,返回str的統計字串。例如,aaabbadddffc 的統計字串為 a 3 b 2 1 d 3 f 2 c 1 補充題目 給定乙個字串的統計字串cstr,再給定乙個整數index,返回cstr所代表的原始字串上第index個字元。例如,a 1 b 100 所代表的原始字串上...

leetcode刷題 字串 反轉字串

給定乙個字串 s 和乙個整數 k,你需要對從字串開頭算起的每隔 2k 個字元的前 k 個字元進行反轉。如果剩餘字元少於 k 個,則將剩餘字元全部反轉。如果剩餘字元小於 2k 但大於或等於 k 個,則反轉前 k 個字元,其餘字元保持原樣。示例 輸入 s abcdefg k 2 輸出 bacdfeg 該...

字串面試題 字串逆序

字串逆序可以說是最經常考的題目。這是一道入門級的題目。給定乙個字串s,將s中的字元順序顛倒過來,比如s abcd 逆序後變成s dcba 基本上沒有這麼考的,放在這裡主要是為了和後面的原地逆序做個對比。很簡單,直接分配乙個與原字串等長的字元陣列,然後反向拷貝一下即可。char reverse cha...