第五周作業 平衡字串

2021-10-04 06:54:18 字數 1167 閱讀 8505

一、題目

乙個長度為 n 的字串 s,其中僅包含 『q』, 『w』, 『e』, 『r』 四種字元。

如果四種字元在字串**現次數均為 n/4,則其為乙個平衡字串。

現可以將 s 中連續的一段子串替換成相同長度的只包含那四個字元的任意字串,使其變為乙個平衡字串,問替換子串的最小長度?

如果 s 已經平衡則輸出0。

二、輸入

一行字元表示給定的字串s

資料範圍:

1<=n<=10^5且n是4的倍數,字串中僅包含字元 『q』, 『w』, 『e』 和 『r』.

三、輸出

乙個整數表示答案

四、樣例輸入輸出

input

qwer

output

五、解題思路

尺取法。

從左往右移動區間,當滿足條件時,左端點右移,縮小區間,當不滿足條件時,右端點右移,擴大區間,這樣可以找到每個滿足條件的區間,從而可以找到最小區間。

記錄不包含該區間時abcd的數量,先判斷能否通過替換區間內的元素使abcd數量一致,再判斷剩餘位置是否是4的倍數。

六、相關**

#include

long

long

int a[

210000];

long

long

int b[

210000];

intmain()

int l,r,c;

for(

int i=

0;ia[0

]=b[0]

;for

(int i=

1;i)printf

("%lld "

,a[0])

;for

(int i=

1;i)printf

("%lld "

,a[i]);

}

第五周作業

includeusing namespace std class student 用引數的初始化表對資料成員初始化。void max student arr void display private int num int score void student display void studen...

第五周作業

5求自然對數 include using namespace std int main cout e 6求圓周率 include include using namespace std int main cout pi約等於 7 include using namespace std int mai...

第五周作業

注意 總時間限制 1000ms 記憶體限制 65536kb 描述寫乙個mystring 類,使得下面程式的輸出結果是 1.abcd efgh abcd 2.abcd 3.4.abcd efgh 5.efgh 6.c 7.abcd 8.ijal 9.ijal mnop 10.qrst abcd 11....