aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsangeet <sangeet.kar@gmail.com>2020-05-22 13:25:38 +0000
committersangeet <sangeet.kar@gmail.com>2020-05-22 13:25:38 +0000
commitefa1dcd03ff1133ccd1b56de294cd882f79810ba (patch)
tree12ee3904561c1ea0ebdb700ff0c8a4ba217cd162
parenta5b0ef9bdabeebfaaab969bd935f5a49e019da78 (diff)
downloadperlweeklychallenge-club-efa1dcd03ff1133ccd1b56de294cd882f79810ba.tar.gz
perlweeklychallenge-club-efa1dcd03ff1133ccd1b56de294cd882f79810ba.tar.bz2
perlweeklychallenge-club-efa1dcd03ff1133ccd1b56de294cd882f79810ba.zip
Python!
-rwxr-xr-xchallenge-061/sangeet-kar/python/ch-1.py18
-rwxr-xr-xchallenge-061/sangeet-kar/python/ch-2.py24
2 files changed, 42 insertions, 0 deletions
diff --git a/challenge-061/sangeet-kar/python/ch-1.py b/challenge-061/sangeet-kar/python/ch-1.py
new file mode 100755
index 0000000000..36304878a6
--- /dev/null
+++ b/challenge-061/sangeet-kar/python/ch-1.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python
+
+from functools import reduce
+from itertools import islice
+
+
+def maxprod(lst):
+ return max((lst[i:j+1]
+ for i in range(len(lst)) for j in range(i, len(lst))),
+ key=prod)
+
+
+def prod(lst):
+ return reduce(lambda x, y: x * y, lst, 1)
+
+
+print(maxprod([2, 3, -5, 1]))
+
diff --git a/challenge-061/sangeet-kar/python/ch-2.py b/challenge-061/sangeet-kar/python/ch-2.py
new file mode 100755
index 0000000000..bbfd2f2c58
--- /dev/null
+++ b/challenge-061/sangeet-kar/python/ch-2.py
@@ -0,0 +1,24 @@
+#!/usr/bin/env python
+
+import sys
+from itertools import product
+
+
+def to_ipv4(str):
+ return [".".join(xs)
+ for xs
+ in ([str[:i], str[i:i+j], str[i+j:i+j+k], str[i+j+k:]]
+ for i, j, k
+ in product([1, 2, 3], repeat=3))
+ if all(is_valid(x) for x in xs)]
+
+
+def is_valid(s):
+ return s and (s == "0" or not s.startswith("0")) and (0 <= int(s) <= 255)
+
+
+input_str = "25525511135" if len(sys.argv) < 2 else sys.argv[1]
+
+for addr in to_ipv4(input_str):
+ print(addr)
+