Все должны быть решены на python
1
дан массив, состоящий из целых чисел
a = [1, 56, 77, 969, 777, 56]
найдите, сколько в этом массиве симметричных чисел (вида 9449 или 404).
обратите все числа, кроме симметричных. обратить – значит перевернуть порядок цифр (56 -> 65, 987 -> 789, и т.д.)
2
дан массив nxn, состоящих из целых чисел с одинаковым количеством строк и столбцов:
a = [
[1, 2, 3],
[5, 77, 4],
[11, -2, 44]
]
1) проверьте, есть ли в соседних с отрицательными числами ячейках числа, которые нацело делятся на абсолютное значение этих отрицательных чисел (например -2 – отрицательное число. есть ли среди соседей числа, которые делятся на 2 – да (4 и 44) – ответ да)
2) выведите массив такого же размера nxn, наполненный boolean переменными. значение true должно быть в тех ячейках, которые соответствуют условию из пункта 1 (соседние с отрицательным и делится на значение отрицательного числа), в остальных - false
3
дан лист вида:
a = [
[1, 2, 3],
[5, 4],
[11, 4, 44, 55, 6, -2, 44]
…
]
1) напишите алгоритм quicksort, который отсортирует массив по длине подмассивов (самые длинные строки вверху, самые короткие – внизу)
2) реализуйте бинарный поиск в отсортированном массиве по длине строки
4
дан лист словарей вида:
a = [
{
“name”: “донер на абая”,
“city”: “алматы”,
“amount”: 5
},
{
“name”: “донер на жарокова”,
“city”: “алматы”,
“amount”: 3
},
{
“name”: “донер на аль-фараби”,
“city”: “шымкент”,
“amount”: 25
},
]
найдите все регионы, в которых донерка с самым длинным названиям является ещё и донеркой с максимальной прибылью.