12345678910111213141516171819202122232425262728293031323334353637383940 |
- # Проверка числа на полиндром
- # divmode(a, b) возвращает картеж: (целая часть от деления a на b, остаток)
- def is_polindrom(x: int) -> bool:
- if x < 0:
- return False
- new = 0
- orig = x
- while x:
- x, d = divmod(x, 10)
- new = new*10 + d
- return new == orig
- # print(is_polindrom(121))
- # Быстрое слияние двух отсортированных списков в один
- def quick_merge(list1, list2):
- result = []
- p1 = 0 # указатель на первый элемент списка list1
- p2 = 0 # указатель на первый элемент списка list2
- while p1 < len(list1) and p2 < len(list2):
- if list1[p1] < list2[p2]:
- result.append(list1[p1])
- p1 += 1
- else:
- result.append(list2[p2])
- p2 += 1
- if p1 < len(list1):
- result += list1[p1:]
- else:
- result += list2[p2:]
- return result
|