Compressió. X84733


Statement
 

pdf   zip

Feu un programa tal que, donada una seqüència al canal d’entrada amb almenys dos elements composta per nombres naturals, i que acaba amb un zero (que marca el final de seqüència), escrigui pel canal de sortida la compressió de la seqüència.

La compressió d’una seqüència consisteix en dir la mida i l’element que composa cada subseqüència d’elements iguals consecutius. Per exemple, donada la seqüència:

[5,5,5,5,5,5,5,5,4,4,1,2,4,4,4,0][5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 1, 2, 4, 4, 4, 0]

la compressió d’aquesta seqüència és:

(5:8)(4:2)(1:1)(2:1)(4:3)( 5 : 8 ) ( 4 : 2 ) ( 1 : 1 ) ( 2 : 1 ) ( 4 : 3 )

ja que:

[5,5,5,5,5,5,5,58,4,42,11,21,4,4,43,0][\underbrace{5, 5, 5, 5, 5, 5, 5, 5}_8, \underbrace{4, 4}_2, \underbrace{1}_1, \underbrace{2}_1, \underbrace{4, 4, 4}_3, 0]

Entrada

Una seqüència de naturals amb almenys dos elements, que acaba en zero.

Sortida

La compressió de la seqüència.

Public test cases
  • Input

    5 
    5 
    5 
    5 
    5 
    5 
    5 
    5 
    4 
    4 
    1 
    2 
    4 
    4 
    4 
    0
    

    Output

    ( 5 : 8 ) 
    ( 4 : 2 ) 
    ( 1 : 1 ) 
    ( 2 : 1 ) 
    ( 4 : 3 ) 
    
  • Input

    5 
    5 
    2 
    5 
    5 
    2 
    5 
    5 
    5 
    4 
    1 
    2 
    2 
    4 
    3 
    0
    

    Output

    ( 5 : 2 ) 
    ( 2 : 1 ) 
    ( 5 : 2 ) 
    ( 2 : 1 ) 
    ( 5 : 3 ) 
    ( 4 : 1 ) 
    ( 1 : 1 ) 
    ( 2 : 2 ) 
    ( 4 : 1 ) 
    ( 3 : 1 ) 
    
  • Information
    Author
    Jaume Baixeries
    Language
    Catalan
    Official solutions
    Python
    User solutions
    Python