01.
def
descodifica_a(cad):
02.
"""
03.
Descodifica uma cadeia codificada pelo método da separação em pares e
04.
impares.
05.
"""
06.
cadeia
=
''
07.
par
=
(len(cad)
%
2
)
=
=
0
# número par ou ímpar de caracteres?
08.
if
par:
09.
meio
=
len(cad)
/
2
10.
inf
=
cad[:meio]
11.
sup
=
cad[meio:]
12.
for
i
in
range(len(sup)):
13.
cadeia
=
cadeia
+
inf[i]
+
sup[i]
# fusão
14.
else
:
15.
meio
=
(len(cad)
/
2
)
+
1
16.
inf
=
cad[:meio]
17.
sup
=
cad[meio:]
18.
for
i
in
range(len(sup)):
19.
cadeia
=
cadeia
+
inf[i]
+
sup[i]
20.
cadeia
=
cadeia
+
inf[
-
1
]
21.
return
cadeia
Et voilá! Dúvidas?
another way :
ResponderEliminardef dencripta():
msg=raw_input("introduza uma msg para descodificar: ")
idpares=''
idimpares=''
msgdesc=''
for i in range(len(msg)/2):
idpares = idpares + msg[i]
for x in range(len(msg)/2,len(msg)):
idimpares =idimpares + msg[x]
for z in range(len(idpares)):
msgdesc=msgdesc+idpares[z]+idimpares[z]
return msgdesc
by mymind and HUgoC
à primeira vista tem dois problemas: (1) se a cadeia for de comprimento ímpar perde-se um elemento; (2) usa três ciclos, não sendo por isso muito eficiente ( a operação de fatiamento resolve isso...).
ResponderEliminar