Форум сайта python.su
0
Стиль кода у меня ужасен я это знаю
В моей программе реализован некое подобие стека , возможно я его криво реализовал так как я его начал изучать только недавно
Во входном файле содержится некоторая последовательность символов состоящия из 6 символов “(” , “)” , "“ , ”{“ , ”}"
del нам нужен для того что , во входном файле могут содержаться только открывающие скобки , тогда моя программа правильно работать не будет поэтому есть эта проверка
if bool=="True": if len(steck)==0: otvet="YES" else: otvet="NO"
Отредактировано dingo (Март 31, 2012 20:57:00)
Офлайн
0
С этой программой понятно
У меня она не очень хорошо реализована
Тогда мне бы хотелось услышать ваше мнение по поводу другой программы она очень простая и легкая , но она вызвала у меня затруднения так как она опять же выполняется долго
Все мы знаем что реализация длинной арифметики на python проще паренной репы
Но если во входном файле 2 числа длинной в 60000 символов , тогда программа выполняется дольше 2сек
Как лучше ее написать?
Отредактировано dingo (Март 31, 2012 21:09:56)
Офлайн
52
Комментарии я как раз и написал к тому, что:
1. Стек это понятно, но реализовывать его надо с вершиной в конце списка, а не в начале, так как добавление элемента в конец быстрее (как и удаление).
2. Удаление элемента после обращения к нему бессмысленно, так как мы можем просто сделать pop.
Вы проверяли корректность моего варианта без bool и otvet? Они там, думается мне, не очень нужны.
Что конкретно нужно сделать во втором задании? Желательно вместе со своим кодом.
Отредактировано fata1ex (Март 31, 2012 23:36:03)
Офлайн
0
Длинная арифметика
Во входном файле содержится 2 строчки в каждой записано положительное число содержащие от 1 до 60000 знаков
Надо их просто сложить и вывести результат в выходной файл
Офлайн
0
Я проверил вашу программу и тестирующая машина прислала accepted , но я проверил на такой последовательности
([{}])[]
Отредактировано dingo (Март 31, 2012 23:35:23)
Офлайн
52
Что значит неверный ответ? Последовательность сбалансированная, что не так?
Во втором задании покажите ваш код, посмотрим что-как.
Офлайн
0
Последовательность сбалансированная но выдает 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()
Отредактировано dingo (Март 31, 2012 23:54:38)
Офлайн
0
Вы можете посоветовать хорошую книжку про алгоритмы на python желательно на русском?
Отредактировано dingo (Апрель 1, 2012 00:13:55)
Офлайн
52
Разумеется, я проверил. Не знаю, как вы запускаете.
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)
Офлайн
0
опс я просто не из той директории ее запускал)
я с английским не очень дружу
Офлайн