Софтуерно Инженерство
Loading...
+ Нов въпрос
ttitto avatar ttitto 1155 Точки

Задачите от двете подготовки за изпита по Python

Може ли някой да помогне с решенията на задачите от подготовките за изпит. Решенията ми са тук 

На "анаграми" не ми минава вторият тест в Judge, а на "шифъра на Цезар" не минава 4тият тест. Според мен решенията ми са съгласно условията, но въпреки това явно нещо пропускам. Ако тестовете са споделени някъде, моля за линк към тях!

Тагове:
0
Python
g.stoyanov avatar g.stoyanov 760 Точки

Здравей,

Предполагам че за шифъра проблема е че не проверяваш за малки букви... но всичко е гадаене понеже нямаме тестовете!

Ето моето решение което минава без грешки. Може да видиш разликата ако е нещо друго но аз не успях!

 

Аз така и не разбрах как да принтираме изхода на един път или с отделни принтове!!!

0
ttitto avatar ttitto 1155 Точки

В решението ми за шифъра пазя всички главни букви в списък и ако в инпута има буква, която е в списъка я шифрирам, а ако не е в списъка, който и да е символът, просто го копирам същия. Т.е ако има малка буква в инпута, то тя би трябвало да се копира както си е в оригиналния инпут. Поне според условието е така: "а символите които не са описани остават непроменени"

 Проблемният тест ми дава отместване с два символа, което не мога да си обясня. Тествал съм и с 0, и с отрицателно число и се получава очакван резултат:

очаква се MFHMW (OQNMNTMBDC "DMFHMD W") HR Z VDA RDQUDQ. HS BZM ZBS ZR Z QDUDQRD OQNWX RDQUDQ ENQ GSSO, GSSOR, RLSO, ONO3, ZMC HLZO OQNSNB...

изкарвам: OHJOY (QSPOPVODFE "FOHJOF Y") JT B XFC TFSWFS. JU DBO BDU BT B SFWFSTF QSPYZ TFSWFS GPS IUUQ, IUUQT, TNUQ, QPQ3, BOE JNBQ QSPUPD...

0
g.stoyanov avatar g.stoyanov 760 Точки

Всеки символ от нормалната азбука се съпоставя с друг символ от азбуката, но на отместване K символа наляво от оригиналния. 

 

Винаги поставяй под съмнение или проверявай условията на задачите - това съвет от мен!

 

промени new_index = (dict[current_char] - key) % 26

на new_index = (dict[current_char] + key) % 26

 

2
ttitto avatar ttitto 1155 Точки

Да, вече го направих. От решението на supersane видях, че съм в обратната посока. 

А това за съмнението в условието не съм много съгласен. Точно затова е условие, за да го изпълним точно. Друг е въпросът, че почти винаги не са предвидени всички възможни решения на дадена задача и остават тестове, които работят само с конкретното авторско решение.

0
supersane avatar supersane 233 Точки

Това е моят код и минава 100/100, може да имаш грешка в алгоритъма за криптиране, знам ли. Виж моя код.

0
ttitto avatar ttitto 1155 Точки

Благодаря! Намерих си грешката. Изтълкувал съм грешно движението наляво. То за единия списък е наляво, но за втория, резултатния е в обратна посока. И така вместо да изваждам ключа от текущия индекс е трябвало да го добавям. А това пък означава че останалите тестове в джъджа са били всички с ключ 13 или 0

Сега остават анаграмите

1
12/02/2016 23:06:14
supersane avatar supersane 233 Точки

Радвам се, че съм помогнал, успех на изпита в неделя и ако желаеш мога да постна решението на задачата за анаграмите на него също хващам 100/100.

едит: Ето и анаграмите.

0
12/02/2016 23:45:01
evgenikolov avatar evgenikolov 310 Точки

Да се включа и аз със едно кратко решение на шифъра, може да е от полза на някой. :)

Относно анаграмите, кода ми е доста дълъг като за повечето си помогнах с гугъл и взех няколко готови функции.

0
teddymarkov avatar teddymarkov 1 Точки

Исках да попитам и вас за задачата с конвертора на валути, по какъв начин се изчисляват стойностите, защото не мога да си обясня чисто математическата формула за това. Нека някой, който е решил задачата да пусне единствено формулата. Дори и примерните резултати в задачата ми се виждат невъзможни като стойности, а в същото време виждам, че доста хора са я решили правилно през джъджа. Може би аз бъркам нещо...

0
byclops avatar byclops 126 Точки

Формулата е bgn = amount/exchange_rate

 

Например:

1182.08 AUD / 0.79676 = 1483.61 BGN

3
teddymarkov avatar teddymarkov 1 Точки

Благодаря ти за точния и бърз отговор! Математиката ми куца, но като ги разделих стана веднага :)

0