Яндекс задачки

1 мин на чтение

1.Напишите регулярное выражение, с помощью которого из URL можно извлечь его домен. Для проверки вашего регулярного выражения будет использован следующий файл с URL-адресами: https://yadi.sk/d/U_pzUDNn3Zx8r7

Ответ:

вариант 3 для данной задачи 100%

\w+:\/\/(?:\w+@)?([\w\-\.]+)

link to regex101

2.Задача — написать скрипт, который будет обрабатывать данный файл в формате json (https://yadi.sk/d/np2eKmoM3Zx8rB). Скрипт должен сгруппировать покупки по магазинам, в которых они были сделаны. В результате должен получиться массив, состоящий из трех элементов. Внутри каждого элемента содержатся название магазина и все покупки, совершенные в нем. Задачу необходимо решить на Python.

Ответ: link to pythontutor

3.Дан массив из n целых чисел. Нужно выбрать n-1 чисел так, чтобы их произведение было максимальным среди всех возможных n-1 наборов.

Ответ: link to pythontutor

4.Есть два сортированных списка (массива). Нужно написать функцию, которая делает новый сортированный список с пересечением элементов этих двух списков.

Пример:

1-ый список: 1, 2, 2, 5, 7, 14

2-й список: 4, 6, 6, 7, 9, 14, 15

Пересечение: 7, 14

Ответ: link to pythontutor

5.Есть две таблицы: orders (order_id, promocode_id) - заказы promocodes (promocode_id, name, discount) - промокоды Вопросы: Какая доля заказов с промокодами? Какой самый популярный промокод (название) и число его использований?

Ответ:

вопрос 1)

SELECT count(*), sum(TBL.vsego), sum(vsego)/count(*)*100
FROM orders DB
 LEFT JOIN (SELECT DB.id, IF(count(DC.id),1,0) as vsego
            FROM orders DB
            LEFT JOIN promocodes DC ON DB.id = DC.base_id
            GROUP BY DB.id) TBL ON TBL.id = DB.id

вопрос 2)

вариант 1

SELECT orders, count(*)
FROM promocodes P1
GROUP BY orders
ORDER BY count(*) DESC
LIMIT 1

вариани 2

SELECT name , kol
     FROM (SELECT promocode_id as id, count(*) as kol
     FROM orders WHERE promocode_id is NOT NULL
     GROUP BY promocode_id ) myTBL LEFT JOIN promocodes ON id =                   
     promocode_id
     WHERE kol = (SELECT max(kol) FROM (SELECT count(*) as kol
     FROM orders WHERE promocode_id is NOT NULL
     GROUP BY promocode_id ) myTBL)

Разделы:

Дата изменения:

Оставить комментарий