WEEK5作業 C 平衡字串

2021-10-04 16:45:44 字數 1003 閱讀 2400

題目

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

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

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

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

input

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

output

乙個整數表示答案

examples

input

qwer

output

0input

qqwe

output

1input

qqqw

output

2input

qqqq

output

3思路:

用尺取法,初始l,r=0,當[l, r]滿足要求,則l++,不滿足要求,則r++。當然,滿足要求的時候如果l=r,那麼l,r都++,當然這道題不會出現。那麼需要滿足什麼要求呢?

先用sum1,sum2,sum3,sum4記錄不包含[l,r]時每個字元的數目

先通過替換(小的向大的看齊)使4類字元數量一致,再判斷剩餘空閒位置是否是4的倍數。

**

#include

#include

using

namespace std;

intmain()

if(q==n/

4&&w==n/

4&&e==n/

4&&r==n/4)

else

int free=total;

for(

int i=

0;i<

4;i++)if

(free>=

0&&free%4==

0)else

} right++;}

cout<}return0;

}

WEEK5 作業 C 平衡字串

乙個長度為 n 的字串 s,其中僅包含 q w e r 四種字元。如果四種字元在字串 現次數均為 n 4,則其為乙個平衡字串。現可以將 s 中連續的一段子串替換成相同長度的只包含那四個字元的任意字串,使其變為乙個平衡字串,問替換子串的最小長度?如果 s 已經平衡則輸出0。一行字元表示給定的字串s 乙...

week5 作業 C 平衡字串

乙個長度為 n 的字串 s,其中僅包含 q w e r 四種字元。如果四種字元在字串 現次數均為 n 4,則其為乙個平衡字串。現可以將 s 中連續的一段子串替換成相同長度的只包含那四個字元的任意字串,使其變為乙個平衡字串,問替換子串的最小長度?如果 s 已經平衡則輸出0。input 一行字元表示給定...

程式設計思維 week5 作業C 平衡字串

乙個長度為 n 的字串 s,其中僅包含 q w e r 四種字元。如果四種字元在字串 現次數均為 n 4,則其為乙個平衡字串。現可以將 s 中連續的一段子串替換成相同長度的只包含那四個字元的任意字串,使其變為乙個平衡字串,問替換子串的最小長度?如果 s 已經平衡則輸出0。一行字元表示給定的字串s。1...