試題 演算法提高 字串壓縮

2021-10-02 16:21:53 字數 821 閱讀 5068

問題描述

編寫乙個程式,輸入乙個字串,然後採用如下的規則對該字串當中的每乙個字元進行壓縮:

(1) 如果該字元是空格,則保留該字元;

(2) 如果該字元是第一次出現或第三次出現或第六次出現,則保留該字元;

(3) 否則,刪除該字元。

例如,若使用者輸入「occurrence」,經過壓縮後,字元c的第二次出現被刪除,第一和第三次出現仍保留;字元r和e的第二次出現均被刪除,因此最後的結果為:「ocurenc」。

輸入格式:輸入只有一行,即原始字串。

輸出格式:輸出只有一行,即經過壓縮以後的字串。

輸入輸出樣例

樣例輸入

occurrence

樣例輸出

ocurenc

用到string和map有關知識點 

string:輸入用cin,cout  ;string的加法可以直接將將兩個string拼接起來;length()反應string的長度

map:定義mapmp;1->2的對映;find(key)返回可以的對映的迭代器;

#include #include #include #include #include using namespace std;

mapmp;

int main()

if(mp.find(str[i])!=mp.end())else

if(mp[str[i]]==1||mp[str[i]]==3||mp[str[i]]==6)

} cout

}

試題 演算法提高 字串壓縮

思路 利用乙個與輸入字串相同長度且值為0的陣列來記錄各個字元出現的次數,最後將符合條件的列印出來即可。詳見 在藍橋杯系統執行滿分。資源限制 時間限制 1.0s 記憶體限制 256.0mb 問題描述 編寫乙個程式,輸入乙個字串,然後採用如下的規則對該字串當中的每乙個字元進行壓縮 1 如果該字元是空格,...

藍橋杯 演算法提高 字串壓縮

問題描述 編寫乙個程式,輸入乙個字串,然後採用如下的規則對該字串當中的每乙個字元進行壓縮 1 如果該字元是空格,則保留該字元 2 如果該字元是第一次出現或第三次出現或第六次出現,則保留該字元 3 否則,刪除該字元。例如,若使用者輸入 occurrence 經過壓縮後,字元c的第二次出現被刪除,第一和...

字串壓縮演算法(騰訊筆試題)

將長度為n的字串a通過設定的演算法,轉換為長度為m且小於n的字串b,字串b通過相應的演算法,可以再次轉換為字串a,該演算法稱為字串壓縮演算法。問題 小q想要給他的朋友傳送乙個神秘字串,但他發現字串的長度過長,於是小q發明了一種壓縮演算法對字串重複的部分進行了壓縮。對於字串內連續的m個相同的子串s將會...