Seqüència Pseudo Morse (I) Z95902


Statement
 

pdf   zip   tar

thehtml

Una seqüència pseudo-morse és una seqüència que pot contenir aquests tres símbols:

0 1 *

Una subseqüència de 0’s i 1’s representa un enter en base 2 escrit a l’inrevés. Per exemple, el 65 és, en binari:

01000001 

però escrit a l’inrevés és:

10000010 

En una seqüència pseudo-morse totes les subseqüències màximes de 0’s i 1’s representen un caràcter ASCII. Això vol dir que el caràcter * separa subseqüències màximes. Per exemple, 10000010 representa el 65, és a dir, el caràcter A (recordeu que escrivim amb el bit de menys pes a l’esquerra de tot).

Cal fer un programa que llegeixi una seqüència pseudo-morse i que transformi totes les subseqüències de 0’s i 1’s en caràcters ASCII.

Per exemple, la seqüència:

00010010 * 11110010 * 00110010 * 10000010 *

representa la seqüència HOLA:

00010010 * 11110010 * 00110010 * 10000010 *

72 79 76 65

H O L A

No totes les subseqüències de 0’s i 1’s han de tenir la mateixa mida. Per exemple, la seqüència:

00010010 * 1111001 * 0011001 * 1000001 *

donaria el mateix resultat que la seqüència anterior (altrament dit: els zeros a la dreta són opcionals).

Observació

Com que llegireu caràcters, no cal que tingueu en compte els espais, perquè quan feu cin >> c (on char c;) no agafa els espais.

Òbviament, no podeu fer servir la funció d’exponenciació ni tampoc no en podeu implementar cap vosaltres (penalització de -8 punts a la correcció manual).

El format de la seqüència d’entrada sempre serà: 0’s i 1’s i un *.

Entrada

Pel canal d’entrada estàndard: una seqüència pseudo-Morse S.

Sortida

La transformació en ASCII de la seqüència pseudo-Morse S.

Public test cases
  • Input

    0001001 * 1111001 * 0011001 * 1000001 * 0101 *
    

    Output

    HOLA
    
    
  • Input

    0100001 * 1111011 * 0111011 * 000001 * 0010011 * 1001011 * 1000011 * 011101 * 000001 * 1100001 * 1111011 * 1011011 * 000001 * 0110111 * 1000011 * 111111 * 
    

    Output

    Bon dia. Com va?
    
  • Information
    Author
    PRO1
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++