diff options
| author | sangeet <sangeet.kar@gmail.com> | 2020-05-22 13:25:38 +0000 |
|---|---|---|
| committer | sangeet <sangeet.kar@gmail.com> | 2020-05-22 13:25:38 +0000 |
| commit | efa1dcd03ff1133ccd1b56de294cd882f79810ba (patch) | |
| tree | 12ee3904561c1ea0ebdb700ff0c8a4ba217cd162 | |
| parent | a5b0ef9bdabeebfaaab969bd935f5a49e019da78 (diff) | |
| download | perlweeklychallenge-club-efa1dcd03ff1133ccd1b56de294cd882f79810ba.tar.gz perlweeklychallenge-club-efa1dcd03ff1133ccd1b56de294cd882f79810ba.tar.bz2 perlweeklychallenge-club-efa1dcd03ff1133ccd1b56de294cd882f79810ba.zip | |
Python!
| -rwxr-xr-x | challenge-061/sangeet-kar/python/ch-1.py | 18 | ||||
| -rwxr-xr-x | challenge-061/sangeet-kar/python/ch-2.py | 24 |
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) + |
