diff options
| author | Steven <steven1170@zoho.eu> | 2024-05-27 16:38:14 +0100 |
|---|---|---|
| committer | Steven <steven1170@zoho.eu> | 2024-05-27 16:38:14 +0100 |
| commit | 1c7d9aaaef74c5d91dbe2b81009b53340be65c75 (patch) | |
| tree | d8a1285930d114da54510543679864801e9d93c0 | |
| parent | 4a3514afd078df234f7acc68eed0b893fc639ccb (diff) | |
| download | perlweeklychallenge-club-1c7d9aaaef74c5d91dbe2b81009b53340be65c75.tar.gz perlweeklychallenge-club-1c7d9aaaef74c5d91dbe2b81009b53340be65c75.tar.bz2 perlweeklychallenge-club-1c7d9aaaef74c5d91dbe2b81009b53340be65c75.zip | |
add solution week 271 task 2 in python
| -rw-r--r-- | challenge-271/steven-wilson/python/ch-2.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/challenge-271/steven-wilson/python/ch-2.py b/challenge-271/steven-wilson/python/ch-2.py new file mode 100644 index 0000000000..23bd2b8fde --- /dev/null +++ b/challenge-271/steven-wilson/python/ch-2.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 + +from operator import itemgetter + + +def sort_by_1_bits(*integers): + ''' Given an array of integers, sort the integers in ascending order by the + number of 1 bits in their binary representation. In case more than one + integers have the same number of 1 bits then sort them in ascending order. + >>> sort_by_1_bits(0, 1, 2, 3, 4, 5, 6, 7, 8) + (0, 1, 2, 4, 8, 3, 5, 6, 7) + >>> sort_by_1_bits(1024, 512, 256, 128, 64) + (64, 128, 256, 512, 1024) + ''' + number_of_1_bits = ((str(bin(i)).count('1'), i) for i in sorted(integers)) + return tuple([i[1] for i in sorted(number_of_1_bits, key=itemgetter(0))]) + + +if __name__ == "__main__": + import doctest + + doctest.testmod(verbose=True) |
