diff options
Diffstat (limited to 'challenge-217/roger-bell-west/python/ch-2.py')
| -rwxr-xr-x | challenge-217/roger-bell-west/python/ch-2.py | 35 |
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() |
