思路:利用乙個與輸入字串相同長度且值為0的陣列來記錄各個字元出現的次數,最後將符合條件的列印出來即可。詳見**。
在藍橋杯系統執行滿分。
**:資源限制
時間限制:1.0s 記憶體限制:256.0mb
問題描述
編寫乙個程式,輸入乙個字串,然後採用如下的規則對該字串當中的每乙個字元進行壓縮:
(1) 如果該字元是空格,則保留該字元;
(2) 如果該字元是第一次出現或第三次出現或第六次出現,則保留該字元;
(3) 否則,刪除該字元。
例如,若使用者輸入「occurrence」,經過壓縮後,字元c的第二次出現被刪除,
第一和第三次出現仍保留;字元r和e的第二次出現均被刪除,
因此最後的結果為:「ocurenc」。
輸入格式:輸入只有一行,即原始字串。
輸出格式:輸出只有一行,即經過壓縮以後的字串。
輸入輸出樣例
樣例輸入
occurrence
樣例輸出
ocurenc
s =
input()
# 輸入字串
n =len
(s)# 字串的長度
a =[0]
* n # 定義乙個與字串長度相同的空字串 用來記錄各字元出現次數
for i in
range
(len
(s)-1,
-1,-
1):# 逆序 有點氣泡排序的味道
for j in
range
(i,-1,
-1):
if s[i]
== s[j]
: a[i]+=1
for i in
range
(n):
# 將次數為1,3,6和空格的字元列印出來
if a[i]==1
or a[i]==3
or a[i]==6
or s[i]
==' '
(s[i]
,end=
'')
試題 演算法提高 字串壓縮
問題描述 編寫乙個程式,輸入乙個字串,然後採用如下的規則對該字串當中的每乙個字元進行壓縮 1 如果該字元是空格,則保留該字元 2 如果該字元是第一次出現或第三次出現或第六次出現,則保留該字元 3 否則,刪除該字元。例如,若使用者輸入 occurrence 經過壓縮後,字元c的第二次出現被刪除,第一和...
藍橋杯 演算法提高 字串壓縮
問題描述 編寫乙個程式,輸入乙個字串,然後採用如下的規則對該字串當中的每乙個字元進行壓縮 1 如果該字元是空格,則保留該字元 2 如果該字元是第一次出現或第三次出現或第六次出現,則保留該字元 3 否則,刪除該字元。例如,若使用者輸入 occurrence 經過壓縮後,字元c的第二次出現被刪除,第一和...
字串壓縮演算法(騰訊筆試題)
將長度為n的字串a通過設定的演算法,轉換為長度為m且小於n的字串b,字串b通過相應的演算法,可以再次轉換為字串a,該演算法稱為字串壓縮演算法。問題 小q想要給他的朋友傳送乙個神秘字串,但他發現字串的長度過長,於是小q發明了一種壓縮演算法對字串重複的部分進行了壓縮。對於字串內連續的m個相同的子串s將會...