aboutsummaryrefslogtreecommitdiff
path: root/challenge-045/paulo-custodio/python/ch-1.py
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-08-31 14:35:19 +0100
committerGitHub <noreply@github.com>2024-08-31 14:35:19 +0100
commit3dbb7440153e0276d79a0c4ab96443eaabf4f0c2 (patch)
treeb169ce1993bf89ffe83bc323f49a2ca0df59b42e /challenge-045/paulo-custodio/python/ch-1.py
parent21744df9e8a8dca71166fe7ecb3e53ff39d93402 (diff)
parent038c86e09d59d3754ab2814e568010d11ca4be89 (diff)
downloadperlweeklychallenge-club-3dbb7440153e0276d79a0c4ab96443eaabf4f0c2.tar.gz
perlweeklychallenge-club-3dbb7440153e0276d79a0c4ab96443eaabf4f0c2.tar.bz2
perlweeklychallenge-club-3dbb7440153e0276d79a0c4ab96443eaabf4f0c2.zip
Merge pull request #10737 from pauloscustodio/master
Add Python solutions
Diffstat (limited to 'challenge-045/paulo-custodio/python/ch-1.py')
-rw-r--r--challenge-045/paulo-custodio/python/ch-1.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/challenge-045/paulo-custodio/python/ch-1.py b/challenge-045/paulo-custodio/python/ch-1.py
new file mode 100644
index 0000000000..a6417710be
--- /dev/null
+++ b/challenge-045/paulo-custodio/python/ch-1.py
@@ -0,0 +1,51 @@
+#!/usr/bin/env python3
+
+# Challenge 045
+#
+# TASK #1
+# Square Secret Code
+#
+# The square secret code mechanism first removes any space from the original
+# message. Then it lays down the message in a row of 8 columns. The coded
+# message is then obtained by reading down the columns going left to right.
+#
+# For example, the message is "The quick brown fox jumps over the lazy dog".
+#
+# Then the message would be laid out as below:
+#
+# thequick
+# brownfox
+# jumpsove
+# rthelazy
+# dog
+#
+# The code message would be as below:
+#
+# tbjrd hruto eomhg qwpe unsl ifoa covz kxey
+#
+# Write a script that accepts a message from command line and prints the
+# equivalent coded message.
+
+import re
+import sys
+
+def encode(text):
+ text, dummy = re.subn(r'\W+', '', text)
+ box = []
+ while text != '':
+ box.append(text[0:8])
+ text = text[8:]
+ encoded = []
+ while True:
+ box = [x for x in filter(lambda x: x != '', box)]
+ if len(box) == 0:
+ break;
+ word = ""
+ for i in range(len(box)):
+ if len(box[i]) > 0:
+ word += box[i][0]
+ box[i] = box[i][1:]
+ encoded.append(word)
+ return encoded
+
+print(' '.join(encode(''.join(sys.argv[1:]))))