leetcode.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. # Проверка числа на полиндром
  2. # divmode(a, b) возвращает картеж: (целая часть от деления a на b, остаток)
  3. def is_polindrom(x: int) -> bool:
  4. if x < 0:
  5. return False
  6. new = 0
  7. orig = x
  8. while x:
  9. x, d = divmod(x, 10)
  10. new = new*10 + d
  11. return new == orig
  12. # print(is_polindrom(121))
  13. # Быстрое слияние двух отсортированных списков в один
  14. def quick_merge(list1, list2):
  15. result = []
  16. p1 = 0 # указатель на первый элемент списка list1
  17. p2 = 0 # указатель на первый элемент списка list2
  18. while p1 < len(list1) and p2 < len(list2):
  19. if list1[p1] < list2[p2]:
  20. result.append(list1[p1])
  21. p1 += 1
  22. else:
  23. result.append(list2[p2])
  24. p2 += 1
  25. if p1 < len(list1):
  26. result += list1[p1:]
  27. else:
  28. result += list2[p2:]
  29. return result