Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
M1-EEA
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
EEA
M1-EEA
Commits
d981525a
Commit
d981525a
authored
Mar 01, 2019
by
Pierre-antoine Comby
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add LZW code/decode
parent
a8c8245d
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
46 additions
and
0 deletions
+46
-0
455-Codage_Sources/algo_code/LZW.py
455-Codage_Sources/algo_code/LZW.py
+46
-0
No files found.
455-Codage_Sources/algo_code/LZW.py
0 → 100755
View file @
d981525a
#!/usr/bin/env python3
import
numpy
as
np
univers
=
[
'a'
,
'b'
,
'c'
]
message
=
"aabababac"
def
code_LZW
(
message
,
univers
):
msg
=
message
dictionnaire
=
dict
(
zip
(
univers
,[
i
for
i
in
range
(
len
(
univers
))]))
w
=
""
code
=
[]
for
c
in
msg
:
wc
=
w
+
c
if
wc
in
dictionnaire
:
w
=
wc
else
:
code
.
append
(
dictionnaire
[
w
])
dictionnaire
[
wc
]
=
len
(
dictionnaire
)
w
=
c
if
w
:
code
.
append
(
dictionnaire
[
w
])
return
code
,
dictionnaire
def
decode_LZW
(
code
,
univers
):
dictionnaire
=
dict
(
zip
([
i
for
i
in
range
(
len
(
univers
))],
univers
))
w
=
dictionnaire
[
code
.
pop
(
0
)]
msg
=
[
w
]
for
k
in
code
:
if
k
in
dictionnaire
:
entry
=
dictionnaire
[
k
]
elif
k
==
len
(
dictionnaire
):
entry
=
w
+
w
[
0
]
msg
.
append
(
entry
)
dictionnaire
[
len
(
dictionnaire
)]
=
w
+
entry
[
0
]
w
=
entry
print
(
dictionnaire
)
return
''
.
join
(
msg
)
code
,
dictionnaire
=
code_LZW
(
message
,
univers
)
print
(
code
)
print
(
dictionnaire
)
msg
=
decode_LZW
(
code
,
univers
)
print
(
message
)
print
(
msg
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment