問題描述
編寫乙個程式,輸入乙個字串,然後採用如下的規則對該字串當中的每乙個字元進行壓縮:
(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將會...