Loading...
KonstantinKirchev avatar KonstantinKirchev -1 Точки

[Exam] Java Basics - 08 February 2015 - впечатления, решения

Здравейте колеги,

Отварям тази тема, за да може всеки който желае да сподели преживяването от изпита :)

Трудни ли Ви бяха задачите?

Какво ще кажете за 3та "любимата ми"?

Аз да Ви кажа съм доволен от себе си. Реших 3 задачи (1ва,2ра и 4та).

Научих нови неща от главоблъскането по 3та задача :) както се случва на всеки изпит.

Обичат да ни предизвикват с интересни задачи :)

Запомнете едно: Най-важното са знанията които трупаме с всеки изминал ден.

Дори най-много се научава от нашите неуспехи. Ще повторим материала и ще го затвърдим. 

Не е ли така?

Успех на всички и горе главата :) 

Keep calm and keep coding :)

 

Тагове:
1
Java Advanced 08/03/2015 14:14:36
iliangrekov avatar iliangrekov 63 Точки

1ва 2ра и 4та са ясни, там нямаше голяма интрига, защото сме ги решавали 10-ки подобни задачи. За 3-та според мен много хора се стреснаха от наименованието "jagged arrays" и от паника, че не са решавали такива задачи пропускат същественото. А именно логиката по която да сравнят тези бройки от клетки, били те масиви, матрица, стрингове и прочие. 

В момента нямам възможност да дам линк към своите решения, но ще обясня логиката си за 3-та, която е в общи линии като вашата.  Правя си един while до енд, това е стандартно.

Пускам един for цикъл до числото N*2 за да ми хване всички редове.

Създавам си един масив от ArrayList-ове

Създавам и масив от String-ове където съм спитнал input line-a

От там всеки елемент от String масива го парсвам към int в един цикъл и 

го add-вам в ArrayList-a. 

Ако съм на ред от дясното блокче, тоест IF(i>N) вече чета долните редове пускам for-a от зад напред за да ми обърне реда.

Накрая  ArrayLista го записвам на съответната позиция в масива от ArrayList-ове.

Накрая в отделен for си сравнявам ArrayList.size() на i позиция + ArrayList.size() на (i + N) позиция дали са равни със следващите. Ако има някой с различна дължина ISFITTING = false. Пазя си сумата в една променлива и ако не isFitting e false изписвам броя на клетките. Ако isFitting e true принтирам 2-та ArrayList-a, които излизат в формат:

[1, 2, 1, 1, 2, 3][1, 2, 1, 1]  - като съответно с един replace("\\]\\[", ", ") получавам очаквания отговор. 

Разбира се може да се ползва двумерен масив или String-a да се reverse-ва, но като цяло предпочитам да работя с числа. :)

1
10/02/2015 21:04:44
enevlogiev avatar enevlogiev 1168 Точки

На изпита и аз ривърсвах, защото това ми беше първата идея, но реално няма нужда. Имаш един for loop, в който събираш дължините на матрица1[първи ред] + матрица 2[първи ред]. В момента, в който има несъответствие, сменяш една булева променлива и според нейната стойност накрая или принтираш, или смяташ клетки. Принтирането става по следния начин : изкарваш първи ред от първа матрица от 0 до края, първи ред от втора матрица от края до 0, местиш на нов ред и задачата е gg.
Няма нужда от листи, алгоритми за ривърсване, Collections.Reverse, т.н. т.н. ... но, за да се сетиш това, трябва да си спокоен на дивана : )

пс. Който има 75 точки на трета задача, най-вероятно е забравил да тримне.

0
10/02/2015 21:35:45
iliangrekov avatar iliangrekov 63 Точки

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

0
m.zh.ivanova avatar m.zh.ivanova 1 Точки

Здравейте колеги, можете ли да ми помогнете да си намеря грешките на четвърта задача... в джъджа ми дава 63/100... и колкото и пъти да я прекарвам през дебъгера, не мога да я намеря пустата грешка :)

ето го и кода ми: http://pastebin.com/tzkzZjc8

0
enevlogiev avatar enevlogiev 1168 Точки

Не съм пускал нищо в джъджа, а и нямам условието под ръка, но мисля, че IP-тата се печатат според order of appearance. С три думи - LinkedHashMap. Ти ги печатиш по азбучен ред. Пробвай да смениш вътрешния TreeMap и пиши, а ако не е това, ще го мислим : )

0
Kamigawa avatar Kamigawa 750 Точки

Да, по ред на влизане бяха, не по азбучен ред.

0
Kaloyan777 avatar Kaloyan777 17 Точки

Странно, все още нямам резултат, стои ми този от предишното ми явяване на този изпит, който е по-нисък.

1
14/02/2015 17:42:51
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.