Задача: Оценить математическое выражение.
Инструкции
Учитывая математическое выражение в виде строки, вы должны вернуть результат в виде числа.
Числа
Числа может быть как целыми, так и десятичными. То же самое относится и к возвращаемому результату.
Операторы
Вам необходимо поддерживать следующие математические операторы:
- Умножение
- Деление
- Дополнение
- Вычитание
Операторы всегда вычисляются слева направо, и
Скобки
Вам нужно поддерживать несколько уровней вложенных скобок, например
Пробел
Между числами и операторами могут быть пробелы, а могут и не быть.
Дополнение к этому правилу состоит в том, что знак минус (
А следующие выражения являются недопустимыми
Проверка
Вам не нужно беспокоиться о проверке - вы получите только действительные математические выражения, следующие приведенным выше правилам.
Примечание:
Объясните своё решение, ответ пишите в чат | #pythonguru_задачи
Инструкции
Учитывая математическое выражение в виде строки, вы должны вернуть результат в виде числа.
Числа
Числа может быть как целыми, так и десятичными. То же самое относится и к возвращаемому результату.
Операторы
Вам необходимо поддерживать следующие математические операторы:
- Умножение
*
- Деление
/
(как истинное деление)- Дополнение
+
- Вычитание
-
Операторы всегда вычисляются слева направо, и
*
и /
должны быть вычислены перед +
и -
.Скобки
Вам нужно поддерживать несколько уровней вложенных скобок, например
(2 / (2 + 3.33) * 4) - -6
Пробел
Между числами и операторами могут быть пробелы, а могут и не быть.
Дополнение к этому правилу состоит в том, что знак минус (
-
), используемый для отрицания чисел и скобок, никогда не будет разделен пробелами. То есть все нижеследующие выражения являются допустимыми.1-1 / / 0
1 -1 // 0
1- 1 // 0
1 - 1 // 0
1- -1 // 2
1 - -1 // 2
6 + -(4) / / 2
6 + -( -4) / / 10
А следующие выражения являются недопустимыми
1 - - 1 // Invalid
1- - 1 // Invalid
6 + - (4) // Invalid
6 + -(- 4) // Invalid
Проверка
Вам не нужно беспокоиться о проверке - вы получите только действительные математические выражения, следующие приведенным выше правилам.
Примечание:
eval
и exec
запрещены в вашем решении.Объясните своё решение, ответ пишите в чат | #pythonguru_задачи
Задача. Snail Sort
Учитывая массив
Для лучшего понимания, пожалуйста, последовательно следуйте числам следующего массива:
Образ на фото проиллюстрирует все более четко.
Примечание: идея состоит не в сортировке элементов от самого низкого значения к самому высокому; идея состоит в том, чтобы пройти 2-ой массив в образце раковины улитки по часовой стрелке.
Примечание 2: 0x0 (пустая матрица) представляется как пустой массив внутри массива
Объясните своё решение, ответ пишите в чат | #pythonguru_задачи
Учитывая массив
n x n
, верните элементы массива, расположенные от крайних элементов к среднему, перемещаясь по часовой стрелке.array = [[1,2,3],
[4,5,6],
[7,8,9]]
snail(array) #=> [1,2,3,6,9,8,7,4,5]
Для лучшего понимания, пожалуйста, последовательно следуйте числам следующего массива:
array = [[1,2,3],
[8,9,4],
[7,6,5]]
snail(array) #=> [1,2,3,4,5,6,7,8,9]
Образ на фото проиллюстрирует все более четко.
Примечание: идея состоит не в сортировке элементов от самого низкого значения к самому высокому; идея состоит в том, чтобы пройти 2-ой массив в образце раковины улитки по часовой стрелке.
Примечание 2: 0x0 (пустая матрица) представляется как пустой массив внутри массива
[[]]
.Объясните своё решение, ответ пишите в чат | #pythonguru_задачи
Задача. Zombie Apocalypse: the Last Number Standing
История: В мире чисел наступил апокалипсис. Орды чисел зомби проникли и готовы превратить все в нежить. Свойства зомби действительно апокалиптические: они воспроизводят себя неограниченно и свободно взаимодействуют друг с другом. Любой, кто равняется им, обречен. Из бесконечного числа натуральных чисел осталось только несколько. Этому миру нужен герой, который ведет оставшиеся числа в надежде на выживание: наибольшее число, чтобы привести тех, кто еще остается.
Брифинг: есть список положительных натуральных чисел. Найдите наибольшее число, которое нельзя представить как сумму этих чисел, учитывая, что каждое число может быть добавлено неограниченное количество раз. Верните это число, либо 0, если таких чисел нет, либо -1, если их бесконечное количество.
Пример:
Допустим,
...и так далее. Итак,
Спецификации теста: Случайные случаи будут вводить до
Объясните своё решение, ответ пишите в чат | #pythonguru_задачи
История: В мире чисел наступил апокалипсис. Орды чисел зомби проникли и готовы превратить все в нежить. Свойства зомби действительно апокалиптические: они воспроизводят себя неограниченно и свободно взаимодействуют друг с другом. Любой, кто равняется им, обречен. Из бесконечного числа натуральных чисел осталось только несколько. Этому миру нужен герой, который ведет оставшиеся числа в надежде на выживание: наибольшее число, чтобы привести тех, кто еще остается.
Брифинг: есть список положительных натуральных чисел. Найдите наибольшее число, которое нельзя представить как сумму этих чисел, учитывая, что каждое число может быть добавлено неограниченное количество раз. Верните это число, либо 0, если таких чисел нет, либо -1, если их бесконечное количество.
Пример:
Допустим,
[3,4]
даны числа. Давайте проверим каждый номер один за другим:1 - (нет решения) - хорошо
2 - (нет решения) - хорошо
3 = 3 не пойдет
4 = 4 не пойдет
5 - (нет решения) - хорошо
6 = 3 + 3 не пойдет
7 = 3 + 4 не пойдет
8 = 4 + 4 не пойдет
9 = 3 + 3 + 3 не пойдет
10 = 3 + 3 + 4 не пойдет
11 = 3 + 4 + 4 не пойдет
13 = 3 + 3 + 3 + 4 не пойдет
...и так далее. Итак,
5
- самое большое «хорошо»
. возврат 5
Спецификации теста: Случайные случаи будут вводить до
10
чисел со значением до 1000
Объясните своё решение, ответ пишите в чат | #pythonguru_задачи