Уведомления

Группа в Telegram: @pythonsu

#1 Март 31, 2012 20:56:20

dingo
Зарегистрирован: 2012-03-29
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Медленное выполнение программы

Стиль кода у меня ужасен я это знаю
В моей программе реализован некое подобие стека , возможно я его криво реализовал так как я его начал изучать только недавно
Во входном файле содержится некоторая последовательность символов состоящия из 6 символов “(” , “)” , "“ , ”{“ , ”}"
del нам нужен для того что , во входном файле могут содержаться только открывающие скобки , тогда моя программа правильно работать не будет поэтому есть эта проверка

if bool=="True":
	if len(steck)==0:
		otvet="YES"
	else:
		otvet="NO"

Отредактировано dingo (Март 31, 2012 20:57:00)

Офлайн

#2 Март 31, 2012 21:07:28

dingo
Зарегистрирован: 2012-03-29
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Медленное выполнение программы

С этой программой понятно
У меня она не очень хорошо реализована
Тогда мне бы хотелось услышать ваше мнение по поводу другой программы она очень простая и легкая , но она вызвала у меня затруднения так как она опять же выполняется долго
Все мы знаем что реализация длинной арифметики на python проще паренной репы
Но если во входном файле 2 числа длинной в 60000 символов , тогда программа выполняется дольше 2сек
Как лучше ее написать?

Отредактировано dingo (Март 31, 2012 21:09:56)

Офлайн

#3 Март 31, 2012 22:45:21

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Медленное выполнение программы

Комментарии я как раз и написал к тому, что:
1. Стек это понятно, но реализовывать его надо с вершиной в конце списка, а не в начале, так как добавление элемента в конец быстрее (как и удаление).
2. Удаление элемента после обращения к нему бессмысленно, так как мы можем просто сделать pop.

Вы проверяли корректность моего варианта без bool и otvet? Они там, думается мне, не очень нужны.

Что конкретно нужно сделать во втором задании? Желательно вместе со своим кодом.



Отредактировано fata1ex (Март 31, 2012 23:36:03)

Офлайн

#4 Март 31, 2012 23:08:36

dingo
Зарегистрирован: 2012-03-29
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Медленное выполнение программы

Длинная арифметика
Во входном файле содержится 2 строчки в каждой записано положительное число содержащие от 1 до 60000 знаков
Надо их просто сложить и вывести результат в выходной файл

Офлайн

#5 Март 31, 2012 23:33:12

dingo
Зарегистрирован: 2012-03-29
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Медленное выполнение программы

Я проверил вашу программу и тестирующая машина прислала accepted , но я проверил на такой последовательности

([{}])[]
и она выдала неверный ответ

Отредактировано dingo (Март 31, 2012 23:35:23)

Офлайн

#6 Март 31, 2012 23:38:22

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Медленное выполнение программы

Что значит неверный ответ? Последовательность сбалансированная, что не так?

Во втором задании покажите ваш код, посмотрим что-как.



Офлайн

#7 Март 31, 2012 23:50:54

dingo
Зарегистрирован: 2012-03-29
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Медленное выполнение программы

Последовательность сбалансированная но выдает False проверьте у себя

f=open("calcz.in")
l=f.read()
s=l.split()
a=int(s[0])
b=int(s[1])
sum=a+b
f1=open("calcz.out","w")
f1.write(str(sum))
f1.close()
Я пробовал разные вариации этого кода и через функцию пытался считать но все равно TimeLimit
Он тормозит из-за жонглирования с типами данных

Отредактировано dingo (Март 31, 2012 23:54:38)

Офлайн

#8 Апрель 1, 2012 00:13:33

dingo
Зарегистрирован: 2012-03-29
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Медленное выполнение программы

Вы можете посоветовать хорошую книжку про алгоритмы на python желательно на русском?

Отредактировано dingo (Апрель 1, 2012 00:13:55)

Офлайн

#9 Апрель 1, 2012 00:19:15

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Медленное выполнение программы

Разумеется, я проверил. Не знаю, как вы запускаете.

with open(file_in, 'r') as fin, open(file_out, 'w') as fout:
	fout.write(sum([int(strnum.strip()) for strnum in fin.readlines()]))

Если этого недостаточно, тогда в гугл за длинной арифметикой, я ее ненавижу )

Фразу “желательно на русском” лучше прямо сейчас и забыть. Про книги по алгоритмам сказано достаточно. Например, Кормен.



Отредактировано fata1ex (Апрель 1, 2012 00:27:52)

Офлайн

#10 Апрель 1, 2012 00:26:38

dingo
Зарегистрирован: 2012-03-29
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Медленное выполнение программы

опс я просто не из той директории ее запускал)
я с английским не очень дружу

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version