試題 演算法提高 字串壓縮

2021-10-05 08:51:14 字數 1129 閱讀 3188

思路:利用乙個與輸入字串相同長度且值為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]

==' '

:print

(s[i]

,end=

'')

試題 演算法提高 字串壓縮

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

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

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

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

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