hihoCoder題庫1039字元消除

2021-07-10 22:52:37 字數 1755 閱讀 5732

題目

時間限制:1000ms 

單點時限:1000ms 

記憶體限制:256mb 

描述 小hi最近在玩乙個字元消除遊戲。給定乙個只包含大寫字母"abc"的字串s,消除過程是如下進行的:    1)如果s包含長度超過1的由相同字母組成的子串,那麼這些子串會被同時消除,餘下的子串拼成新的字串。例如"abccbcccaa"中"cc","ccc"和"aa"會被同時消除,餘下"ab"和"b"拼成新的字串"abb"。  2)上述消除會反覆一輪一輪進行,直到新的字串不包含相鄰的相同字元為止。例如」abccbcccaa」經過一輪消除得到"abb",再經過一輪消除得到"a"    遊戲中的每一關小hi都會面對乙個字串s。在消除開始前小hi有機會在s中任意位置(第乙個字元之前、最後乙個字元之後以及相鄰兩個字元之間)插入任意乙個字元('a','b'或者'c'),得到字串t。t經過一系列消除後,小hi的得分是消除掉的字元的總數。    請幫助小hi計算要如何插入字元,才能獲得最高得分。    

輸入 輸入第一行是乙個整數t(1<=t<=100),代表測試資料的數量。  之後t行每行乙個由'a''b''c'組成的字串s,長度不超過100。   

輸出 對於每一行輸入的字串,輸出小hi最高能得到的分數。    

提示 第一組資料:在"abcbcccaa"的第2個字元後插入'c'得到"abccbcccaa",消除後得到"a",總共消除9個字元(包括插入的'c')。  第二組資料:"aaa"插入'a'得到"aaaa",消除後得到"",總共消除4個字元。  第三組資料:無論是插入字元後得到"aabc","abbc"還是"abcc"都最多消除2個字元。    

樣例輸入  3 

abcbcccaa 

aaa 

abc 

樣例輸出  9

4  2

我的**(未完)

#includeint main()

for(i=0;i

一開始想這麼做,結果中間卡殼的不行,於是放棄了陣列的方法,轉去網上搜了下其他人的想法,看到有乙個人用c++,stl的vector,然後就來了靈感,vector就是個容器有很多已有的函式很方便,例如這道題插入乙個字母就可以用v.insert(),刪除之後就可以用v.push_back()在新容器裡新生成字串,複製起來也很方便。具體思路參照了愛程式網的乙個**,主要是熟悉了vector的用法。

參考較多的**(已a)

#include #include #include using namespace std;

int max(int a,int b,int c)

else

}bool check(vectora)

while(round--)

//system("pause");

return 0;

}

通過比較我寫的c和這個c++的**,c目前卡殼的地方也能解決了。寫c++ main()函式最後一段的時候抱著試一下的想法寫了:

string str[100];

sum(str[round]);

沒想到和預計的效果一樣。

原來字串可以這麼方便的與陣列結合,至於為什麼可以這麼結合還不是很了解,等最近著急的事忙完後,再具體查閱一下,然後用原來的思路c再做一次這題。

字元消除 hihoCoder1039

題意 向給定的字串中插入乙個字元 a b 或 c 然後消除左右相同的字元,問插入某乙個位置後最多能夠消除多少個字元。思路 字串長度不超過 100,t 不超過 100,資料比較小,暴力列舉一下插入的位置也不會超時。所以思路就是暴力列舉每乙個插入的位置,然後求出能夠消除的字元個數,取最大的即是最終結果。...

字元消除 HihoCoder 1039

小hi最近在玩乙個字元消除遊戲。給定乙個只包含大寫字母 abc 的字串s,消除過程是如下進行的 1 如果s包含長度超過1的由相同字母組成的子串,那麼這些子串會被同時消除,餘下的子串拼成新的字串。例如 abccbcccaa 中 cc ccc 和 aa 會被同時消除,餘下 ab 和 b 拼成新的字串 a...

hihocoder 1039 字元消除

小hi最近在玩乙個字元消除遊戲。給定乙個只包含大寫字母 abc 的字串s,消除過程是如下進行的 1 如果s包含長度超過1的由相同字母組成的子串,那麼這些子串會被同時消除,餘下的子串拼成新的字串。例如 abccbcccaa 中 cc ccc 和 aa 會被同時消除,餘下 ab 和 b 拼成新的字串 a...