Академия Яндекса: Интенсив по алгоритмам. Разбор ДЗ 1 - видео HD
01:15:49
Академия Яндекса: разработка 366 роликов
4203 просмотра
Интенсив по алгоритмам. Разбор ДЗ 1 - видео.
С 5 по 9 сентября пройдут Интенсивы по алгоритмам. Чтобы получать ссылки на домашние задания и новые разборы, зарегистрируйтесь на сайте Открытого лектория: academy.yandex.ru/lp/open-lectures
Записи лекций, по которым подготовлены задачи: yandex.ru/yaintern/algorithm-training
Записи лекций, по которым подготовлены задачи: yandex.ru/yaintern/algorithm-training
развернуть свернуть
Удалось получит Ок при значении = степени двойки, а как реализовать для 1000 я так и не понял…
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);
}
}
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)))