aboutsummaryrefslogtreecommitdiff
path: root/challenge-217/roger-bell-west/python/ch-2.py
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-217/roger-bell-west/python/ch-2.py')
-rwxr-xr-xchallenge-217/roger-bell-west/python/ch-2.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/challenge-217/roger-bell-west/python/ch-2.py b/challenge-217/roger-bell-west/python/ch-2.py
new file mode 100755
index 0000000000..91a3bdc714
--- /dev/null
+++ b/challenge-217/roger-bell-west/python/ch-2.py
@@ -0,0 +1,35 @@
+#! /usr/bin/python3
+
+def maxnumber(lst):
+ po = [str(i) for i in lst]
+ pl = max(len(i) for i in po)
+ pm = []
+ for so in po:
+ sm = so
+ while len(sm) < pl:
+ sm += sm[-1]
+ pm.append(sm)
+ pi = list(range(len(pm)))
+ pi.sort(key = lambda i: pm[i], reverse = True)
+ return int("".join(po[st] for st in pi))
+
+import unittest
+
+class TestMaxnumber(unittest.TestCase):
+
+ def test_ex1(self):
+ self.assertEqual(maxnumber([1, 23]), 231, 'example 1')
+
+ def test_ex2(self):
+ self.assertEqual(maxnumber([10, 3, 2]), 3210, 'example 2')
+
+ def test_ex3(self):
+ self.assertEqual(maxnumber([31, 2, 4, 10]), 431210, 'example 3')
+
+ def test_ex4(self):
+ self.assertEqual(maxnumber([5, 11, 4, 1, 2]), 542111, 'example 4')
+
+ def test_ex5(self):
+ self.assertEqual(maxnumber([1, 10]), 110, 'example 5')
+
+unittest.main()