Цифровое образование

Академия Яндекса: Интенсив по алгоритмам. Разбор ДЗ 1 - видео HD

Академия Яндекса: Интенсив по алгоритмам. Разбор ДЗ 1 - видео
01:15:49
Лекции из курсов различных школ Яндекса, записи мастер-классов, семинаров и докладов на мероприятиях — для специалистов IT-отрасли, студентов технических вузов и даже школьников.

Интенсив по алгоритмам. Разбор ДЗ 1 - видео.

С 5 по 9 сентября пройдут Интенсивы по алгоритмам. Чтобы получать ссылки на домашние задания и новые разборы, зарегистрируйтесь на сайте Открытого лектория: academy.yandex.ru/lp/open-lectures

Записи лекций, по которым подготовлены задачи: yandex.ru/yaintern/algorithm-training
RSS
Антон Аверьянов
15:22
Задача С про газ, подскажите пожалуйста, так что нужно сделать, чтобы решение проходило тесты при значении 1000?
Удалось получит Ок при значении = степени двойки, а как реализовать для 1000 я так и не понял…
Казаков Сергей
17:54
Как называется файл в котором тестовый робот вручает нам данные? Пишу на с никак не могу пройти тест, потому что непонятно как их получать.
Евгений Попов
17:38
В python принят snake_case для именования переменных и функций, причем Pycharm даже ругается на это(https://youtu.be/aJs9TQOadfA?t=173). Я понимаю, что у лектора скорей всего не python основной язык, но зачем студентам прививать bad practice?
sanal salynov
14:49
Здравствуйте, вроде такое же решение канонического пути, но 10 тест не проходит, подскажите в чем ошибка,
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Cononikway {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String str = bf.readLine();
str=str+"/";
while (true){
if(str.contains("/./")){
str = str.replace("/./","/");
} else if (str.contains("//")) {
str = str.replace("//","/");
} else if (str.contains("/../")) {
int first = str.indexOf("/../");
if(first == 0){
str = str.substring(3);
}else{
int right = str.substring(0, first+1).lastIndexOf("/");
str = str.substring(0,right) + str.substring(first+3);
}
}else{
break;
}
}
if(str.endsWith("/") && !str.equals("/")){
str = str.substring(0,str.length()-1);
}
if(str.endsWith("/.")){
str=str.substring(0,str.length()-2);
}
if(str.equals("")){
str = "/";
}
System.out.println(str);
}
}
Belchenochek
00:05
Вот такое решение получилось для канонического пути. Тесты проходит, но интересно, насколько оно оптимальное.
def transform(str):
ans = []
for i in range(len(str)):
if str[i] == '..':
if i > 1 and len(ans) > 0:
del ans[-1]
else:
if str[i] != '' and str[i] != '.':
ans.append(str[i])
return ans

str = input().strip().split('/')
print('/'+'/'.join(transform(str)))
Загрузка...