Merge pull request #2 from 2022WPJ/master

Add solutions
This commit is contained in:
Rick van Hattem
2022-10-08 17:31:26 +02:00
committed by GitHub
3 changed files with 58 additions and 0 deletions
@@ -0,0 +1,29 @@
class Borg:
def __new__(cls):
if not hasattr(cls, '_state'):
cls._state = {}
instance = super(Borg, cls).__new__(cls)
instance.__dict__ = cls._state
return instance
class SubBorg(Borg):
pass
class SubBorg2(Borg):
pass
def main():
a = SubBorg()
b = SubBorg()
c = SubBorg2()
a.attr = 10
assert hasattr(b, 'attr') and b.attr == 10
assert not hasattr(c, 'attr')
if __name__ == '__main__':
main()
@@ -0,0 +1,29 @@
import random
def quicksort(nums, left=None, right=None):
if left is None:
left = 0
if right is None:
right = len(nums) - 1
if right <= left:
return
j = left
temp = nums[right]
for i in range(left, right):
if nums[i] < temp:
nums[i], nums[j] = nums[j], nums[i]
j += 1
nums[j], nums[right] = nums[right], nums[j]
quicksort(nums, left, j - 1)
quicksort(nums, j + 1, right)
return nums
def main():
nums = random.sample(range(100000), 100000)
assert sorted(nums) == quicksort(nums)
if __name__ == '__main__':
main()