diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-05-28 10:32:08 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-28 10:32:08 +0100 |
| commit | 20f285f0a8d78afae5112cd5d26aa3db0c64e40f (patch) | |
| tree | e2aed13a532e1cd4b565f12c54cd7c492a76d9d7 | |
| parent | 8f2e50462cf031f3bf3c58b44ee1ca73c6fad7c9 (diff) | |
| parent | 1c7d9aaaef74c5d91dbe2b81009b53340be65c75 (diff) | |
| download | perlweeklychallenge-club-20f285f0a8d78afae5112cd5d26aa3db0c64e40f.tar.gz perlweeklychallenge-club-20f285f0a8d78afae5112cd5d26aa3db0c64e40f.tar.bz2 perlweeklychallenge-club-20f285f0a8d78afae5112cd5d26aa3db0c64e40f.zip | |
Merge pull request #10169 from oWnOIzRi/week271
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) |
