Найти - Пользователи
Полная версия: Медленное выполнение программы
Начало » Python для новичков » Медленное выполнение программы
1 2 3
dingo
Стиль кода у меня ужасен я это знаю
В моей программе реализован некое подобие стека , возможно я его криво реализовал так как я его начал изучать только недавно
Во входном файле содержится некоторая последовательность символов состоящия из 6 символов “(” , “)” , "“ , ”{“ , ”}"
del нам нужен для того что , во входном файле могут содержаться только открывающие скобки , тогда моя программа правильно работать не будет поэтому есть эта проверка
if bool=="True":
	if len(steck)==0:
		otvet="YES"
	else:
		otvet="NO"
dingo
С этой программой понятно
У меня она не очень хорошо реализована
Тогда мне бы хотелось услышать ваше мнение по поводу другой программы она очень простая и легкая , но она вызвала у меня затруднения так как она опять же выполняется долго
Все мы знаем что реализация длинной арифметики на python проще паренной репы
Но если во входном файле 2 числа длинной в 60000 символов , тогда программа выполняется дольше 2сек
Как лучше ее написать?
fata1ex
Комментарии я как раз и написал к тому, что:
1. Стек это понятно, но реализовывать его надо с вершиной в конце списка, а не в начале, так как добавление элемента в конец быстрее (как и удаление).
2. Удаление элемента после обращения к нему бессмысленно, так как мы можем просто сделать pop.

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

Что конкретно нужно сделать во втором задании? Желательно вместе со своим кодом.
dingo
Длинная арифметика
Во входном файле содержится 2 строчки в каждой записано положительное число содержащие от 1 до 60000 знаков
Надо их просто сложить и вывести результат в выходной файл
dingo
Я проверил вашу программу и тестирующая машина прислала accepted , но я проверил на такой последовательности
([{}])[]
и она выдала неверный ответ
fata1ex
Что значит неверный ответ? Последовательность сбалансированная, что не так?

Во втором задании покажите ваш код, посмотрим что-как.
dingo
Последовательность сбалансированная но выдает 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
Вы можете посоветовать хорошую книжку про алгоритмы на python желательно на русском?
fata1ex
Разумеется, я проверил. Не знаю, как вы запускаете.

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

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

Фразу “желательно на русском” лучше прямо сейчас и забыть. Про книги по алгоритмам сказано достаточно. Например, Кормен.
dingo
опс я просто не из той директории ее запускал)
я с английским не очень дружу
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB